* Re: [LARTC] RE: LARTC digest, Vol 1 #1558 - 9 msgs
From: Roy @ 2004-01-28 4:57 UTC (permalink / raw)
To: lartc
In-Reply-To: <50F73B338A7FD943B7937BBCF99BFBDE33B0D5@mail.sofaware.com>
> As was mentioned before: the netfilter framework itself is able to drop
> packets without negative side effects. So this should also be possible
> for IMQ (or any other network device driver).
>
Well, this needs to be tested. I will try nerfilter module which can drop
each n-th packet.
I wonder what will happen.
At least policer was not sucessfull for dropping packets.
Basicaly all this could be fixed if to find a way to tell kernel that
device is busy and dont want more data.
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
^ permalink raw reply
* failure notice
From: MAILER-DAEMON-g6rAwPk19u7k1uMJSBkQmQ @ 2004-01-28 5:01 UTC (permalink / raw)
To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
Hi. This is the qmail-send program at azrabita.net.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.
<emin-g6rAwPk19u7k1uMJSBkQmQ@public.gmane.org>:
Sorry, no mailbox here by that name. vpopmail (#5.1.1)
--- Below this line is a copy of the message.
Return-Path: <acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
Received: (qmail 89755 invoked from network); 28 Jan 2004 05:01:21 -0000
Received: from unknown (HELO lists.sourceforge.net) (68.70.73.198)
by 217.64.18.115 with SMTP; 28 Jan 2004 05:01:18 -0000
From: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
To: emin-g6rAwPk19u7k1uMJSBkQmQ@public.gmane.org
Subject: HELLO
Date: Tue, 27 Jan 2004 21:06:34 -0800
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_0008_3094F894.0A9B2776"
X-Priority: 3
X-MSMail-Priority: Normal
This is a multi-part message in MIME format.
------=_NextPart_000_0008_3094F894.0A9B2776
Content-Type: text/plain;
charset="Windows-1252"
Content-Transfer-Encoding: 7bit
The message cannot be represented in 7-bit ASCII encoding and has been sent as a binary attachment.
------=_NextPart_000_0008_3094F894.0A9B2776
Content-Type: application/octet-stream;
name="readme.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="readme.zip"
UEsDBAoAAAAAANEoPDDKJx+eAFgAAABYAABUAAAAcmVhZG1lLmh0bSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGlm
TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUEUA
AEwBAwAAAAAAAAAAAAAAAADgAA8BCwEHAABQAAAAEAAAAGAAAGC+AAAAcAAAAMAAAAAASgAAEAAA
AAIAAAQAAAAAAAAABAAAAAAAAAAA0AAAABAAAAAAAAACAAAAAAAQAAAQAAAAABAAABAAAAAAAAAQ
AAAAAAAAAAAAAADowQAAMAEAAADAAADoAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABVUFgwAAAAAABgAAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAAAACAAADg
VVBYMQAAAAAAUAAAAHAAAABQAAAABAAAAAAAAAAAAAAAAAAAQAAA4C5yc3JjAAAAABAAAADAAAAA
BAAAAFQAAAAAAAAAAAAAAAAAAEAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAMS4yNABVUFghDAkCCUh+iY/UNhyBKZYAAFNOAAAAgAAAJgEAxe6H
ApIAUCZKAEAD/bJpmiwQBPQl6AEAS85pmm7ZH8gqwAO4sKimaZqmoJiQiICapmmaeHBoYFhQzWCf
aUgARAc4MDRN03QDKCQcGBDTLLvXCCMD+Cnw6E3TNE3g2NDIvLQ0TdM0rKSclIzONk3TiHxwaClv
XKbpmsEHVEwDRDiapmmaLCQcFAwEaZrObfwofwP07OSmaZqm3NTMyLyapmmatKykoJiQZ5umaYyA
eHAoe2jebNN1B1wDVEwo//sLdrb740APNCj3LC8DmqYZ+SQoShwUDARpms7sm/wnA+zo4KZpmqbY
1MzIwJqmabq4J7CsqKCYaZqmaZSMiIR8pGmapnRsZFxUaZqmG0wDREA4MKZpmqYoIBgQCJqmc5sA
+CbPA+jg2Gebzm1UNEMDQDQ024r/////nVrQ2uX0Bh8zTmxyTtgCl1+SyAE9fL5DS5bkNYngOpf/
////91rAKZUEdutj3lzdYehy/48iuFHtjC7TeybUDTnwqmf/////J+qweUUU5ruTbkwtEfjiz7+y
qKGdnJ6jq7bE1ekAGjf/////V3qgyfUkVovD/jx9wQhSn+9CmPFNrA5z20a0JZkQigf/////hwqQ
GaWlqP7yw9Ko+BIsSmuPtuANPXCm3xtafOEnVcn/////EmC+GGXVOJ4Xc+JUiUG8muM/xlCNbQCW
T8tqDLFDerL/////cxfOiEcFyIpXI/LEmXFMLgvv1sCtnZCGD3t6fJGJlKL/////s8fe+hU1WH6n
wwI0eaHcGluP5jBtzSB2zyuK/FG5JJL/////A3fuaOVl6G6Xg4N2jJWhsMLX7wooSW2UvusbToS9
+Tj/////er8HUqDxRWyWU7MafOVRwDKnH5oYmR2kLrtL3nQNqUj/////6o834pBB9axmI+OmbDUB
0KJ3TyoI6c20not7bmRdWVj/////Wl9ncoCRpbzW8xM2XIWx4BJHf7r4OX3EDlur/lStCT3/////
mnenAnDhVcwGw0PGXNVhYWRqc3+MoLXN6AYnS3Kcyfn/////LGKbVxZYfbBgJv4jetQxkeRawy/O
EIX9dPZ3+4AMmSn/////vFLrhybIbRXAbh+TikThlNQSId+ugFUtGObHq/J8aVn/////TkI7Nzg4
PUVQXm+DmrTR8RQ6Y8++8OVstuQjW/e8Yaj/////0DuJ7nM8Y/iZ4MVLkRehId4isz8/VEhRe29+
1s/ZbpX/3/7/KQMj6ZQJv+bzpUEQpnwyaWuAIQstx07SEIJs+f////9zp3feFIcHB/tSqgFhwCyb
9yaW3ZedImAPRp7N/SxAf/////+TstLxCSBYdmhjXVBSUVNqZHcBLMXvVDC8VxE8zp1Xbv////8g
461g2tFSFc5mX7dBwBTkZZOfeP5yDbznapV7exN2dv////99HA0t8vb0sPHR53n63Uxlo/8nbIzd
C9uMG6m9dYc7T//////bFIJCFAlFzIIP+mK3KXP7FYPnHpN+tCRpKf+9KMvqTv//7f93Djqwv/dU
1OxzmAFNBp3yoq/CYvPlXjffBXFS/////wf4G0B+VD6nqU8sAn0wyOcG0lQqGmtMAZ0E9mr6HccG
/4X///gdkASrlgAGBhAr75nUTv8XeAuTxvh1IYyk/////1//zHJr62/+pf3s0EHJeJHZxKwmx+jg
qbcaXW/sKRCj/////7zz7fVvUSE1jdZTHEgpGOO3XD+duM3QUlXjtUPqvmfj/////6CgMuLOSTok
LzAKj66E4XVAoWKYsvUwSuDj/5GBwScH/////3eIZ49Us4UI4v6CRathjnTauyo4rvBK1BicF4pI
wrW8/////577H1bmbpDgO0ezoBq30qq8xPeTSKYBwAT/BhKLXanY/////72UMfgf6FpjPt/WCspC
1QxeYEly9fSu9FMX/BYV8o6a/////3NwPIKx4o43W1MWoieUVFissTU3Pqp1ZZUhbusahIFq////
/+YKGD86lZ+BguNzpEc9CQLWLojCp9U/ilzqn1Y7Xz1K/9L//8N5X0MJuPCrms4esoXZS8HUO17P
3/ZH+Ur3/////9j7LbSKZ2L/WK0RjCL3W8tY34X8rOBl2uuXlOJgCO8//////zzj7H8QjmB+3U2b
5J0FG5d628yz+zePJfE5HbJ8GvUd/////x+9n+nG6unrPtmWcP072kUl9vOk59YEIUw5/lukh4mS
////C53TsFuNKjZCG8rR5DRQrMMcxeFmimxbM1FC/////+0+I6ti1+6U9DSy6dVJrF4mrrxteWeV
WzeGpII9rofD/////4ewgLbfQ9+7i4BlLx6oMsu1KpM3Q3niYjRauu1pXGwi/////6wY1XPh68iG
L1pJT/FD8zfLbzYYPWctofGYQhK4DcHK/7f//2sKa/gFjY0HnpfoiFC2srjZ8zKBX9p+X/fQHQ3/
////ShsDOn0PPwtPGPEr4Yi1NyT31AcfN2/Na5BdQpaXn6L/////n50vJlZAhvcbrLVavCc7JKSd
idPIpU82+mgAvj5dGdb/2///9ckUyfDkjiw2iQvghuvRCwoz07M2hpLkvYowoP/////HuV680N6r
wchK14K/XeWgnpOQJdhALzGgCaazMAGh2P////9frZFovBhyOfUsoWNhix4aQSY3G0eq2fC7xeYx
4EwsaTf+///o+hHGcPdD+0ei2qDV9yjFv7WVcNEE9fBNaRv8////lj2TBqUsujl4DNudAiPDmVWW
hFuHQjz/////MzSANfYd8ySmXsbvONrcqoff2HIvP8Tk9pY2j0Q1R/X/////QdWRJmlnyhPaLDJt
CSkRc1pBVgs6PfBSHawvphrwt/r//0v/MRQml5IPtKQsvl7QDM/PtwBr03qRVDiIkrH/N2j/5Qrn
4JUlmsjO1oIDpc578bTzHTb//1/4sAzRf5GPJf5SijZ1a+/bwdkjxg8+dRWkwP3/////vLrDPAha
53OGbtWwV3A6D36k3FDVQj8Pjq8/q+BAc+P///8bwlx/iRSy+e0DGCL+C48qlJUdTWH6Jm9hE4O/
8P///h3CDD375n8/KDSeK68izSmi62dcuGhJfmZLf4P/wKqq0yrLdWigKKdI39unGj0l/////yQF
1+Xs4O3i+PkOZ5dWkbv0XM3X35G6tz+5ml2IrF05/xb//+xxa5fsK8AuCGjFnVkbCQvvGbZTWZVZ
D/////8Sdvmb1JGvTrBBSKDuhyimZ58Oxz9PyLYCxZlctWRzDr/E//+bALZBVBTrCYPqxQD5jmVe
aGEU9uPhUpP/wv//2shfm3fGoonK0uTbIvEfjxzJrtVAeLhM3Hz/////8cmzboBqoIUrhLngq83n
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
+djWqf//W6JCbJnJ/DJrp+YobSBgTp+DKqTd//9faMQs/27gVc1IxkdpMtxpgewiu1f2mD36L/T/
5ZA+76NaFNE8NBrjVFAl/di2l3ti+H/pF6wpHBILB+0NFSAuP+sKhKEHhP///7fQX47A9fsIpucr
crwJvcwCW7cWeN1VsB4PA3r/////9HG6MajNSkMhKg9pcAJjOtLilKlpeUWJvnwlhZFVDsH4t/7/
7R5TtUTu32jxRzKWf4wdW8glqXzVJrP//1u0gNK1BGKCbhyK5Eyi3QBRuaXpLv9/i8ZLcIdXPCdp
e2iJlaKAnebr84n/3/jbf21bDAv5g+gRI57fC0aEaDFQmuc3iv//Df7gOZX0Vrsj2m3hWNJPz1LY
Ye3t8Pb/Cxr//y/9LEFZdJKzmShVhbjuJ2Oi5ClxvApbrwZgvR3/Fl/qgOZPjpwRiQS6hw6YJbVI
3v////93E7JU+aFM+qtfFtCNTRDWn2s6DOG5lHJTNx4I9eXYzv+F/v/Hw8LEydHc6vsPJkBdfaBP
G0p8sekkYqP/Av//5y54xRVovhdz0jSZAWzaSwCwLa0wtj/L//+N/svO1N3p+ApAUnCRtdwGM2OW
zAVBgMIHT/9S//+a6DmN5D6b+17ELZkIeu9nU+Fl7HYDkyb+X+r/vFXxkDLXfyrYiT3oayvutH1J
GOq/l3Lo//+XwBX85tPDtqyloaCip6+6yNntBB47W/X//19BzfkoWo/HKHN5bmMuYyx2IDAuMSAy
MDA0/SPbb5MxL3h4IAI6IGFuZHkpAHu7BRvMAi0MAAUcADkJzhD/mQ8BABAACQAS1wMHIX77ZnV2
enRNdi5xeXk3RmL9v/v/c2dqbmVyXFp2cGViZg1cSnZhcWJqZlxQaGV/+f+/F2FnSXJlZnZiYVxS
a2N5YmVyZWJ6UXl0M7f4LdgyXBlDanJvRnZrRnq6v/32Z2tGMFNnbmZ4ehcucmtyAEcLWis0BfYj
Z0V5l5b/9r9ub3RlcGFkICVzC01lc3NhZ2UALCX7mNsPdRIFLjJ1OgSKbnvPFAYDLy0/K/tv/29D
ZWMATm92AE9jdABTTQBBdWcASnVsA7a5261uU2F5D3ByBwNGkLe/XbYTYVNhJ0ZyaQBUaERXZfbO
3bZkB3VzTW8XL2FiY2Sf+8Jv/2doaWprbG2ccHFyc3ROd3h5emf2//9/QUJDREVGR0hJSktMTU5P
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
/wAAAIiIiAAAAAAIh3d3eIAAAHj//4iHcAAAePeP//94AAB4/////3gAAHj3d3j/eAAAeP////94
AAB493d4/3gAAHj/////eAAAePd3j/94AAB4/////3gAAHj/////eAAAeH9/f394AACHc4eHh4AA
AAezO3t3gAAAAAAAAIAAAPA/AADgBwAAwAcAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMADAADA
AwAAwAMAAMADAADABwAA4AcAAP/fAADYkQAAAAABAAEAEBAQAAEABAAoAQAAAQAAAAAAAAAAAAAA
AACQwgAAYMIAAAAAAAAAAAAAAAAAAJ3CAABwwgAAAAAAAAAAAAAAAAAAqsIAAHjCAAAAAAAAAAAA
AAAAAAC1wgAAgMIAAAAAAAAAAAAAAAAAAMDCAACIwgAAAAAAAAAAAAAAAAAAAAAAAAAAAADKwgAA
2MIAAOjCAAAAAAAA9sIAAAAAAAAEwwAAAAAAAAzDAAAAAAAAcwAAgAAAAABLRVJORUwzMi5ETEwA
QURWQVBJMzIuZGxsAE1TVkNSVC5kbGwAVVNFUjMyLmRsbABXUzJfMzIuZGxsAABMb2FkTGlicmFy
eUEAAEdldFByb2NBZGRyZXNzAABFeGl0UHJvY2VzcwAAAFJlZ0Nsb3NlS2V5AAAAbWVtc2V0AAB3
c3ByaW50ZkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAFBLAQIUAAoAAAAAANEoPDDKJx+eAFgAAABYAABUAAAAAAAAAAAAIAAAAAAA
AAByZWFkbWUuaHRtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC5waWZQSwUGAAAAAAEAAQCCAAAAclgAAAAA
------=_NextPart_000_0008_3094F894.0A9B2776--
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
^ permalink raw reply
* [PATCH 2.6] is_subdir-fix
From: Maneesh Soni @ 2004-01-28 5:20 UTC (permalink / raw)
To: Al Viro; +Cc: LKML, Dipankar Sarma, Andrew Morton
o The following patch fixes is_subdir() races with d_move. Due to concurrent
d_move, in is_subdir() we can end up accessing freed d_parent pointer in
case of pre-emptible kernel. To avoid this we can use rcu_read_lock() and
rcu_read_unlock().
o This also fixes the seqlock uses in is_subdir() as we need to restart the
the inner loop with the origianl new_dentry passed to the routine in case
of any rename occured while we are traversing d_parent links.
fs/dcache.c | 9 +++++++++
1 files changed, 9 insertions(+)
diff -puN fs/dcache.c~is_subdir-fix fs/dcache.c
--- linux-2.6.2-rc2/fs/dcache.c~is_subdir-fix 2004-01-27 22:38:17.000000000 +0530
+++ linux-2.6.2-rc2-maneesh/fs/dcache.c 2004-01-27 23:43:17.000000000 +0530
@@ -1429,15 +1429,23 @@ out:
*
* Returns 1 if new_dentry is a subdirectory of the parent (at any depth).
* Returns 0 otherwise.
+ * Caller must ensure that "new_dentry" is pinned before calling is_subdir()
*/
int is_subdir(struct dentry * new_dentry, struct dentry * old_dentry)
{
int result;
+ struct dentry * saved = new_dentry;
unsigned long seq;
result = 0;
+ /* need rcu_readlock to protect against the d_parent trashing due to
+ * d_move
+ */
+ rcu_read_lock();
do {
+ /* for restarting inner loop in case of seq retry */
+ new_dentry = saved;
seq = read_seqbegin(&rename_lock);
for (;;) {
if (new_dentry != old_dentry) {
@@ -1451,6 +1459,7 @@ int is_subdir(struct dentry * new_dentry
break;
}
} while (read_seqretry(&rename_lock, seq));
+ rcu_read_unlock();
return result;
}
_
--
Maneesh Soni
Linux Technology Center,
IBM Software Lab, Bangalore, India
email: maneesh@in.ibm.com
Phone: 91-80-5044999 Fax: 91-80-5268553
T/L : 9243696
^ permalink raw reply
* [PATCH 2.6] proc_check_dir-locking-fix
From: Maneesh Soni @ 2004-01-28 5:20 UTC (permalink / raw)
To: Al Viro; +Cc: LKML, Dipankar Sarma, Andrew Morton
Please have a look at the following patch fixing locking in proc_check_root().
It brings is_subdir() call under vfsmount_lock. Holding vfsmount_lock will
ensure mnt_mountpoint dentry is intact and the dentry does not go away while
it is being checked in is_subdir().
fs/proc/base.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
diff -puN fs/proc/base.c~proc_check_root-fix-locking fs/proc/base.c
--- linux-2.6.2-rc2/fs/proc/base.c~proc_check_root-fix-locking 2004-01-27 22:28:07.000000000 +0530
+++ linux-2.6.2-rc2-maneesh/fs/proc/base.c 2004-01-27 22:28:07.000000000 +0530
@@ -425,17 +425,15 @@ static int proc_check_root(struct inode
mnt = vfsmnt;
while (vfsmnt != our_vfsmnt) {
- if (vfsmnt == vfsmnt->mnt_parent) {
- spin_unlock(&vfsmount_lock);
+ if (vfsmnt == vfsmnt->mnt_parent)
goto out;
- }
de = vfsmnt->mnt_mountpoint;
vfsmnt = vfsmnt->mnt_parent;
}
- spin_unlock(&vfsmount_lock);
if (!is_subdir(de, base))
goto out;
+ spin_unlock(&vfsmount_lock);
exit:
dput(base);
@@ -444,6 +442,7 @@ exit:
mntput(mnt);
return res;
out:
+ spin_unlock(&vfsmount_lock);
res = -EACCES;
goto exit;
}
_
--
Maneesh Soni
Linux Technology Center,
IBM Software Lab, Bangalore, India
email: maneesh@in.ibm.com
Phone: 91-80-5044999 Fax: 91-80-5268553
T/L : 9243696
^ permalink raw reply
* [PPC64] Trivial cleanups to hugepage support
From: David Gibson @ 2004-01-28 5:16 UTC (permalink / raw)
To: Andrew Morton; +Cc: Anton Blanchard, linuxppc64-dev, linux-kernel
Andrew, please apply. These are some trivial cleanups to the hugepage
ppc64 support
===================================================================
--- working.orig/arch/ppc64/mm/hugetlbpage.c 2004-01-28 15:40:24.000000000 +1100
+++ working/arch/ppc64/mm/hugetlbpage.c 2004-01-28 15:40:47.000000000 +1100
@@ -654,10 +654,9 @@
unsigned long hpteflags, prpn, flags;
long slot;
- ea &= ~(HPAGE_SIZE-1);
-
/* We have to find the first hugepte in the batch, since
* that's the one that will store the HPTE flags */
+ ea &= HPAGE_MASK;
ptep = hugepte_offset(mm, ea);
/* Search the Linux page table for a match with va */
@@ -885,10 +884,11 @@
spin_unlock(&htlbpage_lock);
}
htlbpage_max = htlbpage_free = htlbpage_total = i;
- printk("Total HugeTLB memory allocated, %d\n", htlbpage_free);
+ printk(KERN_INFO "Total HugeTLB memory allocated, %d\n",
+ htlbpage_free);
} else {
htlbpage_max = 0;
- printk("CPU does not support HugeTLB\n");
+ printk(KERN_INFO "CPU does not support HugeTLB\n");
}
return 0;
--
David Gibson | For every complex problem there is a
david AT gibson.dropbear.id.au | solution which is simple, neat and
| wrong.
http://www.ozlabs.org/people/dgibson
^ permalink raw reply
* Re: RFC: ACPI table overflow handling
From: Len Brown @ 2004-01-28 5:20 UTC (permalink / raw)
To: Jes Sorensen
Cc: Bjorn Helgaas, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
ACPI Developers, jbarnes-sJ/iWh9BUns, steiner-sJ/iWh9BUns
In-Reply-To: <BF1FE1855350A0479097B3A0D2A80EE001E60811-N2PTB0HCzHJF3Yvz3xaN/VDQ4js95KgL@public.gmane.org>
Accepted.
thanks Jes, Bjorn,
-Len
On Tue, 2004-01-13 at 04:49, Jes Sorensen wrote:
> >>>>> "Bjorn" == Bjorn Helgaas <bjorn.helgaas-VXdhtT5mjnY@public.gmane.org> writes:
>
> Bjorn> On Sunday 11 January 2004 7:30 am, Jes Sorensen wrote:
> >> (acpi_table_parse_madt(ACPI_MADT_IOSAPIC, acpi_parse_iosapic, 256)
>
> Bjorn> The "256" looks like it's based on the "iosapic_lists[256]"
> Bjorn> definition. We probably should introduce a #define for those
> Bjorn> cases (sorry, I should have noticed this the first time).
>
> No problem, easy fix.
>
> >> +++ linux-2.6.0-test11-ia64/arch/x86_64/kernel/acpi/boot.c Sun Jan
> >> 11 05:31:58 2004 + result =
> Bjorn> Is NO_IRQ_VECTORS a typo for NR_IRQ_VECTORS?
>
> Yup typo, thanks for catching this one.
>
> >> +++ linux-2.6.0-test11-ia64/drivers/acpi/numa.c Thu Jan 8 02:49:24
> >> 2004 acpi_table_parse_srat ( enum acpi_srat_entry_id id, -
> >> acpi_madt_entry_handler handler) + acpi_madt_entry_handler handler,
> >> + int max_entries)
>
> Bjorn> Should "max_entries" be unsigned? I notice you used unsigned
> Bjorn> types in the implementation, i.e., "count".
>
> I have no strong preference since I find it unlikely that anyone will
> want to loop it 2^31 times, but for esthetics lets make it unsigned.
>
> How about this one then?
>
> Cheers,
> Jes
>
> diff -urN -X /usr/people/jes/exclude-linux --exclude=io --exclude=sn
> --exclude='qla1280.[ch]'
> orig/linux-2.6.0-test11-ia64/arch/i386/kernel/acpi/boot.c
> linux-2.6.0-test11-ia64/arch/i386/kernel/acpi/boot.c
> --- orig/linux-2.6.0-test11-ia64/arch/i386/kernel/acpi/boot.c Wed
> Nov 26 12:45:28 2003
> +++ linux-2.6.0-test11-ia64/arch/i386/kernel/acpi/boot.c Sun
> Jan 11 05:16:24 2004
> @@ -44,8 +44,8 @@
> extern int acpi_irq;
> extern int acpi_ht;
>
> -int acpi_lapic = 0;
> -int acpi_ioapic = 0;
> +int acpi_lapic;
> +int acpi_ioapic;
>
> /*
> --------------------------------------------------------------------------
> Boot-time Configuration
> @@ -418,7 +418,7 @@
> * and (optionally) overriden by a LAPIC_ADDR_OVR entry
> (64-bit value).
> */
>
> - result = acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR,
> acpi_parse_lapic_addr_ovr);
> + result = acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR,
> acpi_parse_lapic_addr_ovr, 0);
> if (result < 0) {
> printk(KERN_ERR PREFIX "Error parsing LAPIC address
> override entry\n");
> return result;
> @@ -426,7 +426,8 @@
>
> mp_register_lapic_address(acpi_lapic_addr);
>
> - result = acpi_table_parse_madt(ACPI_MADT_LAPIC,
> acpi_parse_lapic);
> + result = acpi_table_parse_madt(ACPI_MADT_LAPIC,
> acpi_parse_lapic,
> + MAX_APICS);
> if (!result) {
> printk(KERN_ERR PREFIX "No LAPIC entries present\n");
> /* TBD: Cleanup to allow fallback to MPS */
> @@ -438,7 +439,7 @@
> return result;
> }
>
> - result = acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI,
> acpi_parse_lapic_nmi);
> + result = acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI,
> acpi_parse_lapic_nmi, 0);
> if (result < 0) {
> printk(KERN_ERR PREFIX "Error parsing LAPIC NMI
> entry\n");
> /* TBD: Cleanup to allow fallback to MPS */
> @@ -475,8 +476,8 @@
> return 1;
> }
>
> - result = acpi_table_parse_madt(ACPI_MADT_IOAPIC,
> acpi_parse_ioapic);
> - if (!result) {
> + result = acpi_table_parse_madt(ACPI_MADT_IOAPIC,
> acpi_parse_ioapic, MAX_IO_APICS);
> + if (!result) {
> printk(KERN_ERR PREFIX "No IOAPIC entries present\n");
> return -ENODEV;
> }
> @@ -488,14 +489,14 @@
> /* Build a default routing table for legacy (ISA) interrupts.
> */
> mp_config_acpi_legacy_irqs();
>
> - result = acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR,
> acpi_parse_int_src_ovr);
> + result = acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR,
> acpi_parse_int_src_ovr, NR_IRQ_VECTORS);
> if (result < 0) {
> printk(KERN_ERR PREFIX "Error parsing interrupt source
> overrides entry\n");
> /* TBD: Cleanup to allow fallback to MPS */
> return result;
> }
>
> - result = acpi_table_parse_madt(ACPI_MADT_NMI_SRC,
> acpi_parse_nmi_src);
> + result = acpi_table_parse_madt(ACPI_MADT_NMI_SRC,
> acpi_parse_nmi_src, NR_IRQ_VECTORS);
> if (result < 0) {
> printk(KERN_ERR PREFIX "Error parsing NMI SRC
> entry\n");
> /* TBD: Cleanup to allow fallback to MPS */
> diff -urN -X /usr/people/jes/exclude-linux --exclude=io --exclude=sn
> --exclude='qla1280.[ch]'
> orig/linux-2.6.0-test11-ia64/arch/ia64/kernel/acpi.c
> linux-2.6.0-test11-ia64/arch/ia64/kernel/acpi.c
> --- orig/linux-2.6.0-test11-ia64/arch/ia64/kernel/acpi.c Wed
> Nov 26 12:44:07 2003
> +++ linux-2.6.0-test11-ia64/arch/ia64/kernel/acpi.c Tue Jan 13
> 01:30:49 2004
> @@ -189,8 +189,6 @@
>
> if (!lsapic->flags.enabled)
> printk(" disabled");
> - else if (available_cpus >= NR_CPUS)
> - printk(" ignored (increase NR_CPUS)");
> else {
> printk(" enabled");
> #ifdef CONFIG_SMP
> @@ -393,12 +391,6 @@
> size = ma->length_hi;
> size = (size << 32) | ma->length_lo;
>
> - if (num_memblks >= NR_MEMBLKS) {
> - printk(KERN_ERR "Too many mem chunks in SRAT. Ignoring
> %ld MBytes at %lx\n",
> - size/(1024*1024), paddr);
> - return;
> - }
> -
> /* Ignore disabled entries */
> if (!ma->flags.enabled)
> return;
> @@ -550,29 +542,29 @@
>
> /* Local APIC */
>
> - if (acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR,
> acpi_parse_lapic_addr_ovr) < 0)
> + if (acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR,
> acpi_parse_lapic_addr_ovr, 0) < 0)
> printk(KERN_ERR PREFIX "Error parsing LAPIC address
> override entry\n");
>
> - if (acpi_table_parse_madt(ACPI_MADT_LSAPIC, acpi_parse_lsapic)
> < 1)
> + if (acpi_table_parse_madt(ACPI_MADT_LSAPIC, acpi_parse_lsapic,
> NR_CPUS) < 1)
> printk(KERN_ERR PREFIX "Error parsing MADT - no LAPIC
> entries\n");
>
> - if (acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI,
> acpi_parse_lapic_nmi) < 0)
> + if (acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI,
> acpi_parse_lapic_nmi, 0) < 0)
> printk(KERN_ERR PREFIX "Error parsing LAPIC NMI
> entry\n");
>
> /* I/O APIC */
>
> - if (acpi_table_parse_madt(ACPI_MADT_IOSAPIC,
> acpi_parse_iosapic) < 1)
> + if (acpi_table_parse_madt(ACPI_MADT_IOSAPIC,
> acpi_parse_iosapic, NR_IOSAPICS) < 1)
> printk(KERN_ERR PREFIX "Error parsing MADT - no
> IOSAPIC entries\n");
>
> /* System-Level Interrupt Routing */
>
> - if (acpi_table_parse_madt(ACPI_MADT_PLAT_INT_SRC,
> acpi_parse_plat_int_src) < 0)
> + if (acpi_table_parse_madt(ACPI_MADT_PLAT_INT_SRC,
> acpi_parse_plat_int_src, ACPI_MAX_PLATFORM_INTERRUPTS) < 0)
> printk(KERN_ERR PREFIX "Error parsing platform
> interrupt source entry\n");
>
> - if (acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR,
> acpi_parse_int_src_ovr) < 0)
> + if (acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR,
> acpi_parse_int_src_ovr, 0) < 0)
> printk(KERN_ERR PREFIX "Error parsing interrupt source
> overrides entry\n");
>
> - if (acpi_table_parse_madt(ACPI_MADT_NMI_SRC,
> acpi_parse_nmi_src) < 0)
> + if (acpi_table_parse_madt(ACPI_MADT_NMI_SRC,
> acpi_parse_nmi_src, 0) < 0)
> printk(KERN_ERR PREFIX "Error parsing NMI SRC
> entry\n");
> skip_madt:
>
> diff -urN -X /usr/people/jes/exclude-linux --exclude=io --exclude=sn
> --exclude='qla1280.[ch]'
> orig/linux-2.6.0-test11-ia64/arch/ia64/kernel/iosapic.c
> linux-2.6.0-test11-ia64/arch/ia64/kernel/iosapic.c
> --- orig/linux-2.6.0-test11-ia64/arch/ia64/kernel/iosapic.c Wed
> Nov 26 12:44:02 2003
> +++ linux-2.6.0-test11-ia64/arch/ia64/kernel/iosapic.c Tue Jan 13
> 01:29:44 2004
> @@ -114,7 +114,7 @@
> char *addr; /* base address of IOSAPIC */
> unsigned int gsi_base; /* first GSI assigned to this
> IOSAPIC */
> unsigned short num_rte; /* number of RTE in this
> IOSAPIC */
> -} iosapic_lists[256];
> +} iosapic_lists[NR_IOSAPICS];
>
> static int num_iosapic;
>
> diff -urN -X /usr/people/jes/exclude-linux --exclude=io --exclude=sn
> --exclude='qla1280.[ch]'
> orig/linux-2.6.0-test11-ia64/arch/x86_64/kernel/acpi/boot.c
> linux-2.6.0-test11-ia64/arch/x86_64/kernel/acpi/boot.c
> --- orig/linux-2.6.0-test11-ia64/arch/x86_64/kernel/acpi/boot.c Wed
> Nov 26 12:43:24 2003
> +++ linux-2.6.0-test11-ia64/arch/x86_64/kernel/acpi/boot.c Tue
> Jan 13 00:33:45 2004
> @@ -46,8 +46,8 @@
> #include <asm/proto.h>
> #include <asm/tlbflush.h>
>
> -int acpi_lapic = 0;
> -int acpi_ioapic = 0;
> +int acpi_lapic;
> +int acpi_ioapic;
>
> #define PREFIX "ACPI: "
>
> @@ -398,7 +398,7 @@
> * and (optionally) overriden by a LAPIC_ADDR_OVR entry
> (64-bit value).
> */
>
> - result = acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR,
> acpi_parse_lapic_addr_ovr);
> + result = acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR,
> acpi_parse_lapic_addr_ovr, 0);
> if (result < 0) {
> printk(KERN_ERR PREFIX "Error parsing LAPIC address
> override entry\n");
> return result;
> @@ -406,7 +406,8 @@
>
> mp_register_lapic_address(acpi_lapic_addr);
>
> - result = acpi_table_parse_madt(ACPI_MADT_LAPIC,
> acpi_parse_lapic);
> + result = acpi_table_parse_madt(ACPI_MADT_LAPIC,
> acpi_parse_lapic,
> + MAX_APICS);
> if (!result) {
> printk(KERN_ERR PREFIX "No LAPIC entries present\n");
> /* TBD: Cleanup to allow fallback to MPS */
> @@ -418,7 +419,7 @@
> return result;
> }
>
> - result = acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI,
> acpi_parse_lapic_nmi);
> + result = acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI,
> acpi_parse_lapic_nmi, 0);
> if (result < 0) {
> printk(KERN_ERR PREFIX "Error parsing LAPIC NMI
> entry\n");
> /* TBD: Cleanup to allow fallback to MPS */
> @@ -455,8 +456,8 @@
> return 1;
> }
>
> - result = acpi_table_parse_madt(ACPI_MADT_IOAPIC,
> acpi_parse_ioapic);
> - if (!result) {
> + result = acpi_table_parse_madt(ACPI_MADT_IOAPIC,
> acpi_parse_ioapic, MAX_IO_APICS);
> + if (!result) {
> printk(KERN_ERR PREFIX "No IOAPIC entries present\n");
> return -ENODEV;
> }
> @@ -468,14 +469,15 @@
> /* Build a default routing table for legacy (ISA) interrupts.
> */
> mp_config_acpi_legacy_irqs();
>
> - result = acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR,
> acpi_parse_int_src_ovr);
> + result = acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR,
> acpi_parse_int_src_ovr, NR_IRQ_VECTORS);
> if (result < 0) {
> printk(KERN_ERR PREFIX "Error parsing interrupt source
> overrides entry\n");
> /* TBD: Cleanup to allow fallback to MPS */
> return result;
> }
>
> - result = acpi_table_parse_madt(ACPI_MADT_NMI_SRC,
> acpi_parse_nmi_src);
> + result = acpi_table_parse_madt(ACPI_MADT_NMI_SRC,
> acpi_parse_nmi_src,
> + NR_IRQ_VECTORS);
> if (result < 0) {
> printk(KERN_ERR PREFIX "Error parsing NMI SRC
> entry\n");
> /* TBD: Cleanup to allow fallback to MPS */
> diff -urN -X /usr/people/jes/exclude-linux --exclude=io --exclude=sn
> --exclude='qla1280.[ch]'
> orig/linux-2.6.0-test11-ia64/drivers/acpi/numa.c
> linux-2.6.0-test11-ia64/drivers/acpi/numa.c
> --- orig/linux-2.6.0-test11-ia64/drivers/acpi/numa.c Thu Dec 11
> 04:22:40 2003
> +++ linux-2.6.0-test11-ia64/drivers/acpi/numa.c Tue Jan 13 00:49:40
> 2004
> @@ -38,7 +38,7 @@
> #define Dprintk(x...)
> #endif
>
> -extern int __init acpi_table_parse_madt_family (enum acpi_table_id
> id, unsigned long madt_size, int entry_id, acpi_madt_entry_handler
> handler);
> +extern int __init acpi_table_parse_madt_family (enum acpi_table_id
> id, unsigned long madt_size, int entry_id, acpi_madt_entry_handler
> handler, unsigned int max_entries);
>
> void __init
> acpi_table_print_srat_entry (
> @@ -156,10 +156,11 @@
> int __init
> acpi_table_parse_srat (
> enum acpi_srat_entry_id id,
> - acpi_madt_entry_handler handler)
> + acpi_madt_entry_handler handler,
> + unsigned int max_entries)
> {
> return acpi_table_parse_madt_family(ACPI_SRAT, sizeof(struct
> acpi_table_srat),
> - id, handler);
> + id, handler, max_entries);
> }
>
>
> @@ -173,9 +174,11 @@
>
> if (result > 0) {
> result =
> acpi_table_parse_srat(ACPI_SRAT_PROCESSOR_AFFINITY,
> -
> acpi_parse_processor_affinity);
> +
> acpi_parse_processor_affinity,
> + NR_CPUS);
> result =
> acpi_table_parse_srat(ACPI_SRAT_MEMORY_AFFINITY,
> -
> acpi_parse_memory_affinity);
> +
> acpi_parse_memory_affinity,
> + NR_MEMBLKS);
> } else {
> /* FIXME */
> printk("Warning: acpi_table_parse(ACPI_SRAT) returned
> %d!\n",result);
> diff -urN -X /usr/people/jes/exclude-linux --exclude=io --exclude=sn
> --exclude='qla1280.[ch]'
> orig/linux-2.6.0-test11-ia64/drivers/acpi/tables.c
> linux-2.6.0-test11-ia64/drivers/acpi/tables.c
> --- orig/linux-2.6.0-test11-ia64/drivers/acpi/tables.c Thu Dec 11
> 04:22:40 2003
> +++ linux-2.6.0-test11-ia64/drivers/acpi/tables.c Tue Jan 13
> 00:52:36 2004
> @@ -295,13 +295,14 @@
> enum acpi_table_id id,
> unsigned long madt_size,
> int entry_id,
> - acpi_madt_entry_handler handler)
> + acpi_madt_entry_handler handler,
> + unsigned int max_entries)
> {
> void *madt = NULL;
> - acpi_table_entry_header *entry = NULL;
> - unsigned long count = 0;
> - unsigned long madt_end = 0;
> - unsigned int i = 0;
> + acpi_table_entry_header *entry;
> + unsigned int count = 0;
> + unsigned long madt_end;
> + unsigned int i;
>
> if (!handler)
> return -EINVAL;
> @@ -335,13 +336,18 @@
> ((unsigned long) madt + madt_size);
>
> while (((unsigned long) entry) < madt_end) {
> - if (entry->type == entry_id) {
> - count++;
> + if (entry->type == entry_id &&
> + (!max_entries || count++ < max_entries))
> handler(entry);
> - }
> +
> entry = (acpi_table_entry_header *)
> ((unsigned long) entry + entry->length);
> }
> + if (max_entries && count > max_entries) {
> + printk(KERN_WARNING PREFIX "[%s:0x%02x] ignored %i
> entries of "
> + "%i found\n", acpi_table_signatures[id],
> entry_id,
> + count - max_entries, count);
> + }
>
> return count;
> }
> @@ -350,10 +356,11 @@
> int __init
> acpi_table_parse_madt (
> enum acpi_madt_entry_id id,
> - acpi_madt_entry_handler handler)
> + acpi_madt_entry_handler handler,
> + unsigned int max_entries)
> {
> return acpi_table_parse_madt_family(ACPI_APIC, sizeof(struct
> acpi_table_madt),
> - id, handler);
> + id, handler, max_entries);
> }
>
>
> @@ -578,4 +585,3 @@
>
> return 0;
> }
> -
> diff -urN -X /usr/people/jes/exclude-linux --exclude=io --exclude=sn
> --exclude='qla1280.[ch]'
> orig/linux-2.6.0-test11-ia64/include/asm-ia64/iosapic.h
> linux-2.6.0-test11-ia64/include/asm-ia64/iosapic.h
> --- orig/linux-2.6.0-test11-ia64/include/asm-ia64/iosapic.h Wed
> Nov 26 12:44:21 2003
> +++ linux-2.6.0-test11-ia64/include/asm-ia64/iosapic.h Tue Jan 13
> 01:30:32 2004
> @@ -52,6 +52,9 @@
> #ifndef __ASSEMBLY__
>
> #ifdef CONFIG_IOSAPIC
> +
> +#define NR_IOSAPICS 256
> +
> extern void __init iosapic_system_init (int pcat_compat);
> extern void __init iosapic_init (unsigned long address,
> unsigned int gsi_base);
> diff -urN -X /usr/people/jes/exclude-linux --exclude=io --exclude=sn
> --exclude='qla1280.[ch]'
> orig/linux-2.6.0-test11-ia64/include/linux/acpi.h
> linux-2.6.0-test11-ia64/include/linux/acpi.h
> --- orig/linux-2.6.0-test11-ia64/include/linux/acpi.h Wed Nov 26
> 12:42:43 2003
> +++ linux-2.6.0-test11-ia64/include/linux/acpi.h Tue Jan 13
> 00:51:02 2004
> @@ -355,8 +355,8 @@
> int acpi_table_init (void);
> int acpi_table_parse (enum acpi_table_id id, acpi_table_handler
> handler);
> int acpi_get_table_header_early (enum acpi_table_id id, struct
> acpi_table_header **header);
> -int acpi_table_parse_madt (enum acpi_madt_entry_id id,
> acpi_madt_entry_handler handler);
> -int acpi_table_parse_srat (enum acpi_srat_entry_id id,
> acpi_madt_entry_handler handler);
> +int acpi_table_parse_madt (enum acpi_madt_entry_id id,
> acpi_madt_entry_handler handler, unsigned int max_entries);
> +int acpi_table_parse_srat (enum acpi_srat_entry_id id,
> acpi_madt_entry_handler handler, unsigned int max_entries);
> void acpi_table_print (struct acpi_table_header *header, unsigned
> long phys_addr);
> void acpi_table_print_madt_entry (acpi_table_entry_header *madt);
> void acpi_table_print_srat_entry (acpi_table_entry_header *srat);
>
>
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: Perforce Software.
> Perforce is the Fast Software Configuration Management System offering
> advanced branching capabilities and atomic changes on 50+ platforms.
> Free Eval! http://www.perforce.com/perforce/loadprog.html
> _______________________________________________
> Acpi-devel mailing list
> Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/acpi-devel
>
>
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
^ permalink raw reply
* Error
From: bob-BJ6v6M5vqdg4Q++5jOxPmw @ 2004-01-28 5:22 UTC (permalink / raw)
To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
[-- Attachment #1: Type: text/plain, Size: 4 bytes --]
[-- Attachment #2: InterScan_SafeStamp.txt --]
[-- Type: text/plain, Size: 294 bytes --]
****** Message from InterScan E-Mail VirusWall NT ******
** WARNING! Attached file body.scr contains:
WORM_MIMAIL.R virus
Attempted to clean the file but it is not cleanable.
It has been deleted.
This mail contains virus
***************** End of message ***************
^ permalink raw reply
* Re: [ACPI] RFC: ACPI table overflow handling
From: Len Brown @ 2004-01-28 5:20 UTC (permalink / raw)
To: Jes Sorensen
Cc: Bjorn Helgaas, linux-kernel, ACPI Developers, jbarnes, steiner
In-Reply-To: <BF1FE1855350A0479097B3A0D2A80EE001E60811@hdsmsx402.hd.intel.com>
Accepted.
thanks Jes, Bjorn,
-Len
On Tue, 2004-01-13 at 04:49, Jes Sorensen wrote:
> >>>>> "Bjorn" == Bjorn Helgaas <bjorn.helgaas@hp.com> writes:
>
> Bjorn> On Sunday 11 January 2004 7:30 am, Jes Sorensen wrote:
> >> (acpi_table_parse_madt(ACPI_MADT_IOSAPIC, acpi_parse_iosapic, 256)
>
> Bjorn> The "256" looks like it's based on the "iosapic_lists[256]"
> Bjorn> definition. We probably should introduce a #define for those
> Bjorn> cases (sorry, I should have noticed this the first time).
>
> No problem, easy fix.
>
> >> +++ linux-2.6.0-test11-ia64/arch/x86_64/kernel/acpi/boot.c Sun Jan
> >> 11 05:31:58 2004 + result =
> Bjorn> Is NO_IRQ_VECTORS a typo for NR_IRQ_VECTORS?
>
> Yup typo, thanks for catching this one.
>
> >> +++ linux-2.6.0-test11-ia64/drivers/acpi/numa.c Thu Jan 8 02:49:24
> >> 2004 acpi_table_parse_srat ( enum acpi_srat_entry_id id, -
> >> acpi_madt_entry_handler handler) + acpi_madt_entry_handler handler,
> >> + int max_entries)
>
> Bjorn> Should "max_entries" be unsigned? I notice you used unsigned
> Bjorn> types in the implementation, i.e., "count".
>
> I have no strong preference since I find it unlikely that anyone will
> want to loop it 2^31 times, but for esthetics lets make it unsigned.
>
> How about this one then?
>
> Cheers,
> Jes
>
> diff -urN -X /usr/people/jes/exclude-linux --exclude=io --exclude=sn
> --exclude='qla1280.[ch]'
> orig/linux-2.6.0-test11-ia64/arch/i386/kernel/acpi/boot.c
> linux-2.6.0-test11-ia64/arch/i386/kernel/acpi/boot.c
> --- orig/linux-2.6.0-test11-ia64/arch/i386/kernel/acpi/boot.c Wed
> Nov 26 12:45:28 2003
> +++ linux-2.6.0-test11-ia64/arch/i386/kernel/acpi/boot.c Sun
> Jan 11 05:16:24 2004
> @@ -44,8 +44,8 @@
> extern int acpi_irq;
> extern int acpi_ht;
>
> -int acpi_lapic = 0;
> -int acpi_ioapic = 0;
> +int acpi_lapic;
> +int acpi_ioapic;
>
> /*
> --------------------------------------------------------------------------
> Boot-time Configuration
> @@ -418,7 +418,7 @@
> * and (optionally) overriden by a LAPIC_ADDR_OVR entry
> (64-bit value).
> */
>
> - result = acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR,
> acpi_parse_lapic_addr_ovr);
> + result = acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR,
> acpi_parse_lapic_addr_ovr, 0);
> if (result < 0) {
> printk(KERN_ERR PREFIX "Error parsing LAPIC address
> override entry\n");
> return result;
> @@ -426,7 +426,8 @@
>
> mp_register_lapic_address(acpi_lapic_addr);
>
> - result = acpi_table_parse_madt(ACPI_MADT_LAPIC,
> acpi_parse_lapic);
> + result = acpi_table_parse_madt(ACPI_MADT_LAPIC,
> acpi_parse_lapic,
> + MAX_APICS);
> if (!result) {
> printk(KERN_ERR PREFIX "No LAPIC entries present\n");
> /* TBD: Cleanup to allow fallback to MPS */
> @@ -438,7 +439,7 @@
> return result;
> }
>
> - result = acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI,
> acpi_parse_lapic_nmi);
> + result = acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI,
> acpi_parse_lapic_nmi, 0);
> if (result < 0) {
> printk(KERN_ERR PREFIX "Error parsing LAPIC NMI
> entry\n");
> /* TBD: Cleanup to allow fallback to MPS */
> @@ -475,8 +476,8 @@
> return 1;
> }
>
> - result = acpi_table_parse_madt(ACPI_MADT_IOAPIC,
> acpi_parse_ioapic);
> - if (!result) {
> + result = acpi_table_parse_madt(ACPI_MADT_IOAPIC,
> acpi_parse_ioapic, MAX_IO_APICS);
> + if (!result) {
> printk(KERN_ERR PREFIX "No IOAPIC entries present\n");
> return -ENODEV;
> }
> @@ -488,14 +489,14 @@
> /* Build a default routing table for legacy (ISA) interrupts.
> */
> mp_config_acpi_legacy_irqs();
>
> - result = acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR,
> acpi_parse_int_src_ovr);
> + result = acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR,
> acpi_parse_int_src_ovr, NR_IRQ_VECTORS);
> if (result < 0) {
> printk(KERN_ERR PREFIX "Error parsing interrupt source
> overrides entry\n");
> /* TBD: Cleanup to allow fallback to MPS */
> return result;
> }
>
> - result = acpi_table_parse_madt(ACPI_MADT_NMI_SRC,
> acpi_parse_nmi_src);
> + result = acpi_table_parse_madt(ACPI_MADT_NMI_SRC,
> acpi_parse_nmi_src, NR_IRQ_VECTORS);
> if (result < 0) {
> printk(KERN_ERR PREFIX "Error parsing NMI SRC
> entry\n");
> /* TBD: Cleanup to allow fallback to MPS */
> diff -urN -X /usr/people/jes/exclude-linux --exclude=io --exclude=sn
> --exclude='qla1280.[ch]'
> orig/linux-2.6.0-test11-ia64/arch/ia64/kernel/acpi.c
> linux-2.6.0-test11-ia64/arch/ia64/kernel/acpi.c
> --- orig/linux-2.6.0-test11-ia64/arch/ia64/kernel/acpi.c Wed
> Nov 26 12:44:07 2003
> +++ linux-2.6.0-test11-ia64/arch/ia64/kernel/acpi.c Tue Jan 13
> 01:30:49 2004
> @@ -189,8 +189,6 @@
>
> if (!lsapic->flags.enabled)
> printk(" disabled");
> - else if (available_cpus >= NR_CPUS)
> - printk(" ignored (increase NR_CPUS)");
> else {
> printk(" enabled");
> #ifdef CONFIG_SMP
> @@ -393,12 +391,6 @@
> size = ma->length_hi;
> size = (size << 32) | ma->length_lo;
>
> - if (num_memblks >= NR_MEMBLKS) {
> - printk(KERN_ERR "Too many mem chunks in SRAT. Ignoring
> %ld MBytes at %lx\n",
> - size/(1024*1024), paddr);
> - return;
> - }
> -
> /* Ignore disabled entries */
> if (!ma->flags.enabled)
> return;
> @@ -550,29 +542,29 @@
>
> /* Local APIC */
>
> - if (acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR,
> acpi_parse_lapic_addr_ovr) < 0)
> + if (acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR,
> acpi_parse_lapic_addr_ovr, 0) < 0)
> printk(KERN_ERR PREFIX "Error parsing LAPIC address
> override entry\n");
>
> - if (acpi_table_parse_madt(ACPI_MADT_LSAPIC, acpi_parse_lsapic)
> < 1)
> + if (acpi_table_parse_madt(ACPI_MADT_LSAPIC, acpi_parse_lsapic,
> NR_CPUS) < 1)
> printk(KERN_ERR PREFIX "Error parsing MADT - no LAPIC
> entries\n");
>
> - if (acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI,
> acpi_parse_lapic_nmi) < 0)
> + if (acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI,
> acpi_parse_lapic_nmi, 0) < 0)
> printk(KERN_ERR PREFIX "Error parsing LAPIC NMI
> entry\n");
>
> /* I/O APIC */
>
> - if (acpi_table_parse_madt(ACPI_MADT_IOSAPIC,
> acpi_parse_iosapic) < 1)
> + if (acpi_table_parse_madt(ACPI_MADT_IOSAPIC,
> acpi_parse_iosapic, NR_IOSAPICS) < 1)
> printk(KERN_ERR PREFIX "Error parsing MADT - no
> IOSAPIC entries\n");
>
> /* System-Level Interrupt Routing */
>
> - if (acpi_table_parse_madt(ACPI_MADT_PLAT_INT_SRC,
> acpi_parse_plat_int_src) < 0)
> + if (acpi_table_parse_madt(ACPI_MADT_PLAT_INT_SRC,
> acpi_parse_plat_int_src, ACPI_MAX_PLATFORM_INTERRUPTS) < 0)
> printk(KERN_ERR PREFIX "Error parsing platform
> interrupt source entry\n");
>
> - if (acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR,
> acpi_parse_int_src_ovr) < 0)
> + if (acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR,
> acpi_parse_int_src_ovr, 0) < 0)
> printk(KERN_ERR PREFIX "Error parsing interrupt source
> overrides entry\n");
>
> - if (acpi_table_parse_madt(ACPI_MADT_NMI_SRC,
> acpi_parse_nmi_src) < 0)
> + if (acpi_table_parse_madt(ACPI_MADT_NMI_SRC,
> acpi_parse_nmi_src, 0) < 0)
> printk(KERN_ERR PREFIX "Error parsing NMI SRC
> entry\n");
> skip_madt:
>
> diff -urN -X /usr/people/jes/exclude-linux --exclude=io --exclude=sn
> --exclude='qla1280.[ch]'
> orig/linux-2.6.0-test11-ia64/arch/ia64/kernel/iosapic.c
> linux-2.6.0-test11-ia64/arch/ia64/kernel/iosapic.c
> --- orig/linux-2.6.0-test11-ia64/arch/ia64/kernel/iosapic.c Wed
> Nov 26 12:44:02 2003
> +++ linux-2.6.0-test11-ia64/arch/ia64/kernel/iosapic.c Tue Jan 13
> 01:29:44 2004
> @@ -114,7 +114,7 @@
> char *addr; /* base address of IOSAPIC */
> unsigned int gsi_base; /* first GSI assigned to this
> IOSAPIC */
> unsigned short num_rte; /* number of RTE in this
> IOSAPIC */
> -} iosapic_lists[256];
> +} iosapic_lists[NR_IOSAPICS];
>
> static int num_iosapic;
>
> diff -urN -X /usr/people/jes/exclude-linux --exclude=io --exclude=sn
> --exclude='qla1280.[ch]'
> orig/linux-2.6.0-test11-ia64/arch/x86_64/kernel/acpi/boot.c
> linux-2.6.0-test11-ia64/arch/x86_64/kernel/acpi/boot.c
> --- orig/linux-2.6.0-test11-ia64/arch/x86_64/kernel/acpi/boot.c Wed
> Nov 26 12:43:24 2003
> +++ linux-2.6.0-test11-ia64/arch/x86_64/kernel/acpi/boot.c Tue
> Jan 13 00:33:45 2004
> @@ -46,8 +46,8 @@
> #include <asm/proto.h>
> #include <asm/tlbflush.h>
>
> -int acpi_lapic = 0;
> -int acpi_ioapic = 0;
> +int acpi_lapic;
> +int acpi_ioapic;
>
> #define PREFIX "ACPI: "
>
> @@ -398,7 +398,7 @@
> * and (optionally) overriden by a LAPIC_ADDR_OVR entry
> (64-bit value).
> */
>
> - result = acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR,
> acpi_parse_lapic_addr_ovr);
> + result = acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR,
> acpi_parse_lapic_addr_ovr, 0);
> if (result < 0) {
> printk(KERN_ERR PREFIX "Error parsing LAPIC address
> override entry\n");
> return result;
> @@ -406,7 +406,8 @@
>
> mp_register_lapic_address(acpi_lapic_addr);
>
> - result = acpi_table_parse_madt(ACPI_MADT_LAPIC,
> acpi_parse_lapic);
> + result = acpi_table_parse_madt(ACPI_MADT_LAPIC,
> acpi_parse_lapic,
> + MAX_APICS);
> if (!result) {
> printk(KERN_ERR PREFIX "No LAPIC entries present\n");
> /* TBD: Cleanup to allow fallback to MPS */
> @@ -418,7 +419,7 @@
> return result;
> }
>
> - result = acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI,
> acpi_parse_lapic_nmi);
> + result = acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI,
> acpi_parse_lapic_nmi, 0);
> if (result < 0) {
> printk(KERN_ERR PREFIX "Error parsing LAPIC NMI
> entry\n");
> /* TBD: Cleanup to allow fallback to MPS */
> @@ -455,8 +456,8 @@
> return 1;
> }
>
> - result = acpi_table_parse_madt(ACPI_MADT_IOAPIC,
> acpi_parse_ioapic);
> - if (!result) {
> + result = acpi_table_parse_madt(ACPI_MADT_IOAPIC,
> acpi_parse_ioapic, MAX_IO_APICS);
> + if (!result) {
> printk(KERN_ERR PREFIX "No IOAPIC entries present\n");
> return -ENODEV;
> }
> @@ -468,14 +469,15 @@
> /* Build a default routing table for legacy (ISA) interrupts.
> */
> mp_config_acpi_legacy_irqs();
>
> - result = acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR,
> acpi_parse_int_src_ovr);
> + result = acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR,
> acpi_parse_int_src_ovr, NR_IRQ_VECTORS);
> if (result < 0) {
> printk(KERN_ERR PREFIX "Error parsing interrupt source
> overrides entry\n");
> /* TBD: Cleanup to allow fallback to MPS */
> return result;
> }
>
> - result = acpi_table_parse_madt(ACPI_MADT_NMI_SRC,
> acpi_parse_nmi_src);
> + result = acpi_table_parse_madt(ACPI_MADT_NMI_SRC,
> acpi_parse_nmi_src,
> + NR_IRQ_VECTORS);
> if (result < 0) {
> printk(KERN_ERR PREFIX "Error parsing NMI SRC
> entry\n");
> /* TBD: Cleanup to allow fallback to MPS */
> diff -urN -X /usr/people/jes/exclude-linux --exclude=io --exclude=sn
> --exclude='qla1280.[ch]'
> orig/linux-2.6.0-test11-ia64/drivers/acpi/numa.c
> linux-2.6.0-test11-ia64/drivers/acpi/numa.c
> --- orig/linux-2.6.0-test11-ia64/drivers/acpi/numa.c Thu Dec 11
> 04:22:40 2003
> +++ linux-2.6.0-test11-ia64/drivers/acpi/numa.c Tue Jan 13 00:49:40
> 2004
> @@ -38,7 +38,7 @@
> #define Dprintk(x...)
> #endif
>
> -extern int __init acpi_table_parse_madt_family (enum acpi_table_id
> id, unsigned long madt_size, int entry_id, acpi_madt_entry_handler
> handler);
> +extern int __init acpi_table_parse_madt_family (enum acpi_table_id
> id, unsigned long madt_size, int entry_id, acpi_madt_entry_handler
> handler, unsigned int max_entries);
>
> void __init
> acpi_table_print_srat_entry (
> @@ -156,10 +156,11 @@
> int __init
> acpi_table_parse_srat (
> enum acpi_srat_entry_id id,
> - acpi_madt_entry_handler handler)
> + acpi_madt_entry_handler handler,
> + unsigned int max_entries)
> {
> return acpi_table_parse_madt_family(ACPI_SRAT, sizeof(struct
> acpi_table_srat),
> - id, handler);
> + id, handler, max_entries);
> }
>
>
> @@ -173,9 +174,11 @@
>
> if (result > 0) {
> result =
> acpi_table_parse_srat(ACPI_SRAT_PROCESSOR_AFFINITY,
> -
> acpi_parse_processor_affinity);
> +
> acpi_parse_processor_affinity,
> + NR_CPUS);
> result =
> acpi_table_parse_srat(ACPI_SRAT_MEMORY_AFFINITY,
> -
> acpi_parse_memory_affinity);
> +
> acpi_parse_memory_affinity,
> + NR_MEMBLKS);
> } else {
> /* FIXME */
> printk("Warning: acpi_table_parse(ACPI_SRAT) returned
> %d!\n",result);
> diff -urN -X /usr/people/jes/exclude-linux --exclude=io --exclude=sn
> --exclude='qla1280.[ch]'
> orig/linux-2.6.0-test11-ia64/drivers/acpi/tables.c
> linux-2.6.0-test11-ia64/drivers/acpi/tables.c
> --- orig/linux-2.6.0-test11-ia64/drivers/acpi/tables.c Thu Dec 11
> 04:22:40 2003
> +++ linux-2.6.0-test11-ia64/drivers/acpi/tables.c Tue Jan 13
> 00:52:36 2004
> @@ -295,13 +295,14 @@
> enum acpi_table_id id,
> unsigned long madt_size,
> int entry_id,
> - acpi_madt_entry_handler handler)
> + acpi_madt_entry_handler handler,
> + unsigned int max_entries)
> {
> void *madt = NULL;
> - acpi_table_entry_header *entry = NULL;
> - unsigned long count = 0;
> - unsigned long madt_end = 0;
> - unsigned int i = 0;
> + acpi_table_entry_header *entry;
> + unsigned int count = 0;
> + unsigned long madt_end;
> + unsigned int i;
>
> if (!handler)
> return -EINVAL;
> @@ -335,13 +336,18 @@
> ((unsigned long) madt + madt_size);
>
> while (((unsigned long) entry) < madt_end) {
> - if (entry->type == entry_id) {
> - count++;
> + if (entry->type == entry_id &&
> + (!max_entries || count++ < max_entries))
> handler(entry);
> - }
> +
> entry = (acpi_table_entry_header *)
> ((unsigned long) entry + entry->length);
> }
> + if (max_entries && count > max_entries) {
> + printk(KERN_WARNING PREFIX "[%s:0x%02x] ignored %i
> entries of "
> + "%i found\n", acpi_table_signatures[id],
> entry_id,
> + count - max_entries, count);
> + }
>
> return count;
> }
> @@ -350,10 +356,11 @@
> int __init
> acpi_table_parse_madt (
> enum acpi_madt_entry_id id,
> - acpi_madt_entry_handler handler)
> + acpi_madt_entry_handler handler,
> + unsigned int max_entries)
> {
> return acpi_table_parse_madt_family(ACPI_APIC, sizeof(struct
> acpi_table_madt),
> - id, handler);
> + id, handler, max_entries);
> }
>
>
> @@ -578,4 +585,3 @@
>
> return 0;
> }
> -
> diff -urN -X /usr/people/jes/exclude-linux --exclude=io --exclude=sn
> --exclude='qla1280.[ch]'
> orig/linux-2.6.0-test11-ia64/include/asm-ia64/iosapic.h
> linux-2.6.0-test11-ia64/include/asm-ia64/iosapic.h
> --- orig/linux-2.6.0-test11-ia64/include/asm-ia64/iosapic.h Wed
> Nov 26 12:44:21 2003
> +++ linux-2.6.0-test11-ia64/include/asm-ia64/iosapic.h Tue Jan 13
> 01:30:32 2004
> @@ -52,6 +52,9 @@
> #ifndef __ASSEMBLY__
>
> #ifdef CONFIG_IOSAPIC
> +
> +#define NR_IOSAPICS 256
> +
> extern void __init iosapic_system_init (int pcat_compat);
> extern void __init iosapic_init (unsigned long address,
> unsigned int gsi_base);
> diff -urN -X /usr/people/jes/exclude-linux --exclude=io --exclude=sn
> --exclude='qla1280.[ch]'
> orig/linux-2.6.0-test11-ia64/include/linux/acpi.h
> linux-2.6.0-test11-ia64/include/linux/acpi.h
> --- orig/linux-2.6.0-test11-ia64/include/linux/acpi.h Wed Nov 26
> 12:42:43 2003
> +++ linux-2.6.0-test11-ia64/include/linux/acpi.h Tue Jan 13
> 00:51:02 2004
> @@ -355,8 +355,8 @@
> int acpi_table_init (void);
> int acpi_table_parse (enum acpi_table_id id, acpi_table_handler
> handler);
> int acpi_get_table_header_early (enum acpi_table_id id, struct
> acpi_table_header **header);
> -int acpi_table_parse_madt (enum acpi_madt_entry_id id,
> acpi_madt_entry_handler handler);
> -int acpi_table_parse_srat (enum acpi_srat_entry_id id,
> acpi_madt_entry_handler handler);
> +int acpi_table_parse_madt (enum acpi_madt_entry_id id,
> acpi_madt_entry_handler handler, unsigned int max_entries);
> +int acpi_table_parse_srat (enum acpi_srat_entry_id id,
> acpi_madt_entry_handler handler, unsigned int max_entries);
> void acpi_table_print (struct acpi_table_header *header, unsigned
> long phys_addr);
> void acpi_table_print_madt_entry (acpi_table_entry_header *madt);
> void acpi_table_print_srat_entry (acpi_table_entry_header *srat);
>
>
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: Perforce Software.
> Perforce is the Fast Software Configuration Management System offering
> advanced branching capabilities and atomic changes on 50+ platforms.
> Free Eval! http://www.perforce.com/perforce/loadprog.html
> _______________________________________________
> Acpi-devel mailing list
> Acpi-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/acpi-devel
>
>
^ permalink raw reply
* [PATCH] locks on pcnet32 watchdog timer
From: chinmay albal @ 2004-01-28 5:24 UTC (permalink / raw)
To: linux-net; +Cc: tsbogend, linux-kernel
Hi,
We sometimes receive a "Bus master arbitration failure, status ffff"
error on pcnet32 drivers while running a huge network load on a 2.6.x
kernel. Applying spinlocks on the watchdog timer routine helps getting
across the problem. A patch for the same is given below.
This patch has been created on 2.6.2-rc1 and tested on an SMP system on
IA32 platform.
Please cc me.
-------------------------------8<--------------------------------------
--- pcnet32-orig.c 2004-01-28 10:43:04.000000000 +0530
+++ pcnet32.c 2004-01-28 10:45:00.000000000 +0530
@@ -1695,12 +1695,14 @@
static void pcnet32_watchdog(struct net_device *dev)
{
struct pcnet32_private *lp = dev->priv;
-
+ unsigned long flags;
+ spin_lock_irqsave(&lp->lock, flags);
/* Print the link status if it has changed */
if (lp->mii)
mii_check_media (&lp->mii_if, 1, 0);
mod_timer (&(lp->watchdog_timer), PCNET32_WATCHDOG_TIMEOUT);
+ spin_unlock_irqrestore(&lp->lock, flags);
}
static struct pci_driver pcnet32_driver = {
---------------------------------8<--------------------------------------
Regards,
Chinmay Albal
Linux Technology Centre,
IBM Software Labs, Bangalore,
mail - albal@in.ibm.com
^ permalink raw reply
* [parisc-linux] Re: [parisc-linux-cvs] linux-2.6 carlos
From: Carlos O'Donell @ 2004-01-28 5:23 UTC (permalink / raw)
To: parisc-linux
In-Reply-To: <20040128051247.D6C6C4941AA@palinux.hppa>
On Tue, Jan 27, 2004 at 10:12:47PM -0700, Carlos O'Donell wrote:
> CVSROOT: /var/cvs
> Module name: linux-2.6
> Changes by: carlos 04/01/27 22:12:47
>
> Modified files:
> kernel : signal.c compat_signal.c
> include/linux : compat_siginfo.h compat.h
> include/asm-parisc: compat_ucontext.h compat_rt_sigframe.h
> include/asm-generic: compat_signal.h
>
> Log message:
> Update the compat_siginfo_t framework.
>
This patch is an update based on feedback from the linux-arch community.
Notably we add is_compat_task() and let the compiler optimize out the
code when CONFIG_COMPAT is not set. It also completes the changeover to
using include/linux/compat_siginfo.h instead of the asm-generic version,
which required that all arches add a compat_siginfo.h to their asm
directory.
Index: kernel/signal.c
===================================================================
RCS file: /var/cvs/linux-2.6/kernel/signal.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -p -r1.10 -r1.11
--- kernel/signal.c 11 Dec 2003 00:48:55 -0000 1.10
+++ kernel/signal.c 28 Jan 2004 05:12:46 -0000 1.11
@@ -24,15 +24,11 @@
#include <linux/binfmts.h>
#include <linux/security.h>
#include <linux/ptrace.h>
+#include <linux/compat_siginfo.h>
#include <asm/param.h>
#include <asm/uaccess.h>
#include <asm/siginfo.h>
-#ifdef CONFIG_COMPAT
-#include <linux/personality.h>
-#include <asm/compat_siginfo.h>
-#endif
-
/*
* SLAB caches for signal bits.
*/
@@ -2011,12 +2007,11 @@ int copy_siginfo_to_user(siginfo_t __use
if (from->si_code < 0)
return __copy_to_user(to, from, sizeof(siginfo_t))
? -EFAULT : 0;
-# ifdef CONFIG_COMPAT
+
/* Use compat_siginfo_t with 32-bit signals */
- if(personality(current->personality) == PER_LINUX32){
+ if(is_compat_task(current)){
return compat_copy_siginfo_to_user((compat_siginfo_t __user *)to,from);
}
-# endif
/*
* If you change siginfo_t structure, please be sure
Index: kernel/compat_signal.c
===================================================================
RCS file: /var/cvs/linux-2.6/kernel/compat_signal.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- kernel/compat_signal.c 10 Dec 2003 22:37:50 -0000 1.1
+++ kernel/compat_signal.c 28 Jan 2004 05:12:46 -0000 1.2
@@ -4,7 +4,7 @@
* 2003-12-20 Carlos O'Donell
* Copied linux/kernel/compat_signal.c (copy_siginfo_to_user)
* and modified to use compat_siginfo_t for thunking down to
- * 32-bit userspace with an ELF64 kernel.
+ * 32-bit userspace from a 64-bit kernel.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -19,14 +19,12 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
-/*#define __KERNEL_SYSCALLS__*/
-
+#include <linux/compat_siginfo.h>
#include <asm/errno.h>
-#include <asm/compat_siginfo.h>
#include <asm/uaccess.h>
#include <asm/siginfo.h>
@@ -41,8 +39,8 @@ int compat_copy_siginfo_to_user(compat_s
return -EFAULT;
/*
- * If you change siginfo_t structure, please be sure
- * this code is fixed accordingly.
+ * If you change compat_siginfo_t structure *or* siginfo_t,
+ * please be sure this code is fixed accordingly.
* It should never copy any pad contained in the structure
* to avoid security leaks, but must copy the generic
* 3 ints plus the relevant union member.
@@ -86,7 +84,7 @@ int compat_copy_siginfo_to_user(compat_s
case __SI_FAULT:
compat_from.si_addr = (compat_uptr_t)((u64)(from->si_addr) & 0xffffffffUL);
err |= __put_user(compat_from.si_addr, &to->si_addr);
-#ifdef __ARCH_SI_TRAPNO
+#ifdef __ARCH_SI_COMPAT_TRAPNO
compat_from.si_trapno = (compat_int_t)(from->si_addr);
err |= __put_user(compat_from.si_trapno, &to->si_trapno);
#endif
Index: include/linux/compat_siginfo.h
===================================================================
RCS file: /var/cvs/linux-2.6/include/linux/compat_siginfo.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- include/linux/compat_siginfo.h 26 Jan 2004 21:09:14 -0000 1.1
+++ include/linux/compat_siginfo.h 28 Jan 2004 05:12:46 -0000 1.2
@@ -6,18 +6,18 @@
#ifndef CONFIG_COMPAT
-/* No compatibility layer required, add empty definitions
- for the compiler */
+/* No compatibility layer required, add empty definitions for the compiler */
typedef struct compat_siginfo{
} compat_siginfo_t;
static inline int compat_copy_siginfo_to_user(void *x, unsigned long y)
{
- return 0;
+ return -1;
}
#else
+
#include <linux/compiler.h>
#include <asm/siginfo.h>
@@ -166,3 +166,4 @@ extern int compat_copy_siginfo_to_user(c
#endif /* CONFIG_COMPAT */
#endif /* _ASM_GENERIC_COMPAT_SIGINFO_H */
+
Index: include/linux/compat.h
===================================================================
RCS file: /var/cvs/linux-2.6/include/linux/compat.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -p -r1.6 -r1.7
--- include/linux/compat.h 27 Jan 2004 22:02:36 -0000 1.6
+++ include/linux/compat.h 28 Jan 2004 05:12:46 -0000 1.7
@@ -6,15 +6,26 @@
*/
#include <linux/config.h>
-#ifdef CONFIG_COMPAT
+#ifndef CONFIG_COMPAT
+
+/* Non-native task requiring compat... doesn't exist */
+#define is_compat_task(x) 0
+
+#else
#include <linux/stat.h>
#include <linux/param.h> /* for HZ */
+#include <linux/personality.h> /* Conditional process compat */
#include <asm/compat.h>
#define compat_jiffies_to_clock_t(x) \
(((unsigned long)(x) * COMPAT_USER_HZ) / HZ)
+/* Non-native task requiring compat */
+#ifndef HAVE_ARCH_IS_COMPAT_TASK
+#define is_compat_task(x) (x->personality == PER_LINUX32)
+#endif
+
struct compat_itimerspec {
struct compat_timespec it_interval;
struct compat_timespec it_value;
Index: include/asm-parisc/compat_ucontext.h
===================================================================
RCS file: /var/cvs/linux-2.6/include/asm-parisc/compat_ucontext.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- include/asm-parisc/compat_ucontext.h 10 Dec 2003 22:37:10 -0000 1.1
+++ include/asm-parisc/compat_ucontext.h 28 Jan 2004 05:12:47 -0000 1.2
@@ -4,7 +4,7 @@
#include<linux/compat.h>
#include<asm/compat_signal.h>
-/* ELF32 ucontext as seen from an ELF64 kernel */
+/* 32-bit ucontext as seen from an 64-bit kernel */
struct compat_ucontext {
compat_uint_t uc_flags;
compat_uptr_t uc_link;
Index: include/asm-parisc/compat_rt_sigframe.h
===================================================================
RCS file: /var/cvs/linux-2.6/include/asm-parisc/compat_rt_sigframe.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- include/asm-parisc/compat_rt_sigframe.h 10 Dec 2003 22:36:09 -0000 1.1
+++ include/asm-parisc/compat_rt_sigframe.h 28 Jan 2004 05:12:47 -0000 1.2
@@ -1,5 +1,5 @@
#include<linux/compat.h>
-#include<asm/compat_siginfo.h>
+#include<linux/compat_siginfo.h>
#include<asm/compat_ucontext.h>
#ifndef _ASM_PARISC_COMPAT_RT_SIGFRAME_H
Index: include/asm-generic/compat_signal.h
===================================================================
RCS file: /var/cvs/linux-2.6/include/asm-generic/compat_signal.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- include/asm-generic/compat_signal.h 10 Dec 2003 22:35:48 -0000 1.1
+++ include/asm-generic/compat_signal.h 28 Jan 2004 05:12:47 -0000 1.2
@@ -1,8 +1,8 @@
#ifndef _ASM_GENERIC_COMPAT_SIGNAL_H
#define _ASM_GENERIC_COMPAT_SIGNAL_H
-# ifndef __ASSEMBLY__
-# include <linux/types.h>
+#ifndef __ASSEMBLY__
+#include <linux/compat.h>
typedef compat_uptr_t compat_sighandler_t;
@@ -12,8 +12,6 @@ typedef struct compat_sigaltstack {
compat_size_t ss_size;
} compat_stack_t;
-# ifdef __KERNEL__
-
/* Most things should be clean enough to redefine this at will, if care
is taken to make libc match. */
@@ -23,6 +21,5 @@ struct compat_sigaction {
compat_sigset_t sa_mask; /* mask last for extensibility */
};
-# endif /* __KERNEL__ */
-# endif /* !__ASSEMBLY */
-#endif /* _ASM_GENERIC_COMPAT_SIGNAL_H */
+#endif /* !__ASSEMBLY__ */
+#endif /* !_ASM_GENERIC_COMPAT_SIGNAL_H */
^ permalink raw reply
* [parisc-linux] Re: [parisc-linux-cvs] linux-2.6 carlos
From: Carlos O'Donell @ 2004-01-28 5:25 UTC (permalink / raw)
To: parisc-linux
In-Reply-To: <20040128051415.4C9724941AA@palinux.hppa>
On Tue, Jan 27, 2004 at 10:14:15PM -0700, Carlos O'Donell wrote:
> CVSROOT: /var/cvs
> Module name: linux-2.6
> Changes by: carlos 04/01/27 22:14:15
>
> Modified files:
> include/asm-parisc: posix_types.h
>
> Log message:
> __kernel_time_t should be of type long on 32-bit systems, it used to be int
>
The generic code expects this to be of type long on all builds, even
32-bit. This might cause other warnings in parisc drivers that have
gotten used to having time_t as int.
Index: include/asm-parisc/posix_types.h
===================================================================
RCS file: /var/cvs/linux-2.6/include/asm-parisc/posix_types.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- include/asm-parisc/posix_types.h 28 Sep 2003 04:06:17 -0000 1.2
+++ include/asm-parisc/posix_types.h 28 Jan 2004 05:14:14 -0000 1.3
@@ -29,7 +29,7 @@ typedef long __kernel_time_t;
typedef unsigned int __kernel_size_t;
typedef int __kernel_ssize_t;
typedef int __kernel_ptrdiff_t;
-typedef int __kernel_time_t;
+typedef long __kernel_time_t;
#endif
typedef char * __kernel_caddr_t;
^ permalink raw reply
* Re: [PATCH|RFC] IPv6: have a proxy discard link-local traffic
From: Pekka Savola @ 2004-01-28 5:26 UTC (permalink / raw)
To: YOSHIFUJI Hideaki / 吉藤英明
Cc: vnuorval, davem, usagi-core, netdev
In-Reply-To: <20040128.085414.32889499.yoshfuji@linux-ipv6.org>
On Wed, 28 Jan 2004, YOSHIFUJI Hideaki / [iso-2022-jp] ^[$B5HF#1QL@^[(B wrote:
> In article <Pine.LNX.4.58.0401272259160.28384@rhea.tcs.hut.fi> (at Tue, 27 Jan 2004 23:11:20 +0200 (EET)), Ville Nuorvala <vnuorval@tcs.hut.fi> says:
> > + /* The proxying router can't forward traffic sent to a link-local
> > + address, so signal the sender and discard the packet. This
> > + behavior is required by the MIPv6 specification. */
>
> Would you please clarify the word "can't" and its reasons?
> won't? don't? or whatever?
I think "can't" in this context means, "it can't be _forwarded_
because it's link-local". It could be proxied using some other
function than ip6_forward, though.
--
Pekka Savola "You each name yourselves king, yet the
Netcore Oy kingdom bleeds."
Systems. Networks. Security. -- George R.R. Martin: A Clash of Kings
^ permalink raw reply
* [U-Boot-Users] Internal Loopback testing
From: Neelakantan @ 2004-01-28 5:26 UTC (permalink / raw)
To: u-boot
Hi,
?
I want to verify if the networking capabilities in u-boot is working properly.So i want todo loopback testing.
?
Have any of u done internal loopback testing,if so could anyone pls let me know the steps involved in doing it.
?
OR??Is there any code available in the web for internal loopback testing?.
?
I saw some code for loopback testing in cpu/mpc8260/ether_fcc.c,but in that it is given that it is an external loopback test.
?
I?also tried in the net to get some information about the loopback testing,but i was not able to.
?
With Grace,
N.S.Neelakantan
****************************************
Confidentiality Notice
The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain confidential or privileged information. If you are not the intended recipient, please notify the sender at mailadmin at isofttech.com immediately and destroy all copies of this message and any attachments.
****************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.denx.de/pipermail/u-boot/attachments/20040128/9df258b8/attachment.htm
^ permalink raw reply
* Re: [parisc-linux] error?
From: Naresh Kumar @ 2004-01-28 5:26 UTC (permalink / raw)
To: Grant Grundler; +Cc: parisc-linux
In-Reply-To: <20040127172256.GB28476@colo.lackof.org>
Grant,
I was referring to linux-2.6. There are two 'break' statements in 'case
PAT_GMMIO:'. Removing the first 'break' will do.
Regards,
Naresh.
> Those are "extra"?
> The version of code in linux-2.4 CVS has:
> case PAT_GMMIO:
> printk(KERN_WARNING MODULE_NAME
> " range[%d] : ignoring GMMIO (0x%lx)\n",
> i, p->start);
> lba_dev->gmmio_base = p->start;
> break;
>
> The code you quoted is missing the "case PAT_GMMIO" and printk.
>
> thanks,
> grant
^ permalink raw reply
* [U-Boot-Users] questions regarding support for new command (getspr/setspr)
From: Kumar Gala @ 2004-01-28 5:43 UTC (permalink / raw)
To: u-boot
I was wondering if it was considered useful to extend the
CFG_CMD_SETGETDCR done by Erik Theisen for DCR registers on the 4xx
family to all PowerPC products for SPRs (CFG_CMD_SETGETSPR).
This is rather simple but can be a useful command.
If, so I had a few questions:
1. Is it ok that the command does not do any checking on the SPR
number. This is quick difficult and would have to be done per
processor since what SPRs exists is implementation specific. If the
user gives the commands an SPR that does not exist the result is going
to be some exception (is this ok)
2. What numerical format should the spr number for the command be taken
in? My think is decimal
3. For setspr what numerical format should the spr value be taken in?
My thinking is hex
4. For getspr what numerical format should the spr be printed in? My
thinking is hex
If so, I will fixup my working patch and submit it once I get answers
to the questions.
thanks
- kumar
^ permalink raw reply
* [ALSA - driver 0000007]: alsa-kernel/pci does NOT contain bt87x driver
From: noreply @ 2004-01-28 5:46 UTC (permalink / raw)
To: alsa-devel
A BUGNOTE has been added to this bug.
======================================================================
http://bugtrack.alsa-project.org/alsa-bug/bug_view_page.php?bug_id=0000007
======================================================================
Reporter: yahoo
Handler:
======================================================================
Project: ALSA - driver
Bug ID: 7
Category: OTHERS
Reproducibility: always
Severity: major
Priority: normal
Status: new
Distribution:
Kernel Version:
======================================================================
Date Submitted: 01-28-2004 05:01 CET
Last Modified: 01-28-2004 06:46 CET
======================================================================
Summary: alsa-kernel/pci does NOT contain bt87x driver
Description:
alsa-kernel/pci does NOT contain bt87x driver it is however
present in alsa-driver/pci.
======================================================================
----------------------------------------------------------------------
alexzapatka - 01-28-2004 06:46 CET
----------------------------------------------------------------------
got tired of having to compile the kernel then recompile ALSA just for this
driver, so here is a quick patch to add it. one file contains the latest
ALSA bk patch from the ftp.alsa-project.org site
(alsa-bk-2004-01-25-plus-bt87x-audio.patch.bz2), the other is just the
patch that assumes you have ALREADY installed the latest bkpatch from the
site (alsa-bt87x-audio.patch.bz2), it probably wont work unless you have
2.6's alsa upgraded to 1.0.1 atleast, but who knows?
Bug History
Date Modified Username Field Change
======================================================================
01-28-04 05:01 yahoo New Bug
01-28-04 06:43 alexzapatka File Added: alsa-bk-2004-01-25-plus-bt87x-audio.patch.bz2
01-28-04 06:43 alexzapatka File Added: alsa-bt87x-audio.patch.bz2
01-28-04 06:46 alexzapatka Bugnote Added: 0000011
======================================================================
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
^ permalink raw reply
* RE: forwarding traffic from one port to another on the same box
From: Mark E. Donaldson @ 2004-01-28 5:49 UTC (permalink / raw)
To: 'Andrew', netfilter
In-Reply-To: <bv779t$mo0$1@sea.gmane.org>
Andrew - your DNAT rule looks fine to me and it should work. I really
think your problem is the first rule, even though the error is apparently
charged to the second rule. I think what you need to do is change the first
rule to -A to the INPUT chain and not the forward chain and it should work.
The packet is not being forwarded, but is rather destined to the same NIC -
so it should be the INPUT chain. Try that and see if it does the trick. If
not, holler again cause there are many with greater expertise on this list
than me.
-----Original Message-----
From: netfilter-admin@lists.netfilter.org
[mailto:netfilter-admin@lists.netfilter.org] On Behalf Of Andrew
Sent: Tuesday, January 27, 2004 6:38 PM
To: netfilter@lists.netfilter.org
Subject: forwarding traffic from one port to another on the same box
I would like to forward all tcp traffic arriving on a particular port to
another port on the same machine. This has worked for me in the past but I
can't get it working on my current machine.
Here are the two commands I'm using to try to create the forward.
iptables -I FORWARD -p tcp -d 192.168.10.34 --dport 26 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i eth0 -s 0/0 -d 192.168.10.34 --dport
26 -j DNAT --to 192.168.10.34:25
The first command is accepted but the second command results in an 'Invalid
argument' error.
The computer has only one interface, eth0. Here are its particulars:
Mandrake Linux 9.2
Iptables 1.2.8
kernel 2.4.24 patched with super-freeswan 1.99.8
The value of /proc/sys/net/ipv4/conf/eth0/forwarding is 0. Changing it to 1
has no impact.
The value of /proc/sys/net/ipv4/conf/eth0/rp_filter is 0.
I hope someone out there has some ideas about what's going on because I'm
all out.
Andrew
^ permalink raw reply
* [ALSA - driver 0000007]: alsa-kernel/pci does NOT contain bt87x driver
From: noreply @ 2004-01-28 5:52 UTC (permalink / raw)
To: alsa-devel
A BUGNOTE has been added to this bug.
======================================================================
http://bugtrack.alsa-project.org/alsa-bug/bug_view_page.php?bug_id=0000007
======================================================================
Reporter: yahoo
Handler:
======================================================================
Project: ALSA - driver
Bug ID: 7
Category: OTHERS
Reproducibility: always
Severity: major
Priority: normal
Status: new
Distribution:
Kernel Version:
======================================================================
Date Submitted: 01-28-2004 05:01 CET
Last Modified: 01-28-2004 06:52 CET
======================================================================
Summary: alsa-kernel/pci does NOT contain bt87x driver
Description:
alsa-kernel/pci does NOT contain bt87x driver it is however
present in alsa-driver/pci.
======================================================================
----------------------------------------------------------------------
alexzapatka - 01-28-2004 06:46 CET
----------------------------------------------------------------------
got tired of having to compile the kernel then recompile ALSA just for this
driver, so here is a quick patch to add it. one file contains the latest
ALSA bk patch from the ftp.alsa-project.org site
(alsa-bk-2004-01-25-plus-bt87x-audio.patch.bz2), the other is just the
patch that assumes you have ALREADY installed the latest bkpatch from the
site (alsa-bt87x-audio.patch.bz2), it probably wont work unless you have
2.6's alsa upgraded to 1.0.1 atleast, but who knows?
----------------------------------------------------------------------
alexzapatka - 01-28-2004 06:52 CET
----------------------------------------------------------------------
sorry... get the ones marked "new"... typo in the last ones...
Bug History
Date Modified Username Field Change
======================================================================
01-28-04 05:01 yahoo New Bug
01-28-04 06:43 alexzapatka File Added: alsa-bk-2004-01-25-plus-bt87x-audio.patch.bz2
01-28-04 06:43 alexzapatka File Added: alsa-bt87x-audio.patch.bz2
01-28-04 06:46 alexzapatka Bugnote Added: 0000011
01-28-04 06:52 alexzapatka Bugnote Added: 0000012
======================================================================
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
^ permalink raw reply
* Re: [uml-devel] Re: more on COW (long)
From: Dan Shearer @ 2004-01-28 5:55 UTC (permalink / raw)
To: Jeff Dike; +Cc: James W McMechan, user-mode-linux-devel
In-Reply-To: <200401280518.i0S5IOZw005580@ccure.user-mode-linux.org>
On Wed, Jan 28, 2004 at 12:18:24AM -0500, Jeff Dike wrote:
> mcmechanjw@juno.com said:
> > Well yes, I want to be able to read real disk images either from a raw
> > device, yes we could stick in a special case ioctl to check for a real
> > device and read its geometry but ick it is easier to specify it, or
> > from a dd'ed image file of a hard disk which would not work even with
> > the ioctl, so ubd1C102H15S16 is better from my view :)
>
> OK, build it and maybe people will come :-)
Yep. I work with many different simulation environments and this is a
*really* useful option. Apart from anything else real sectors are a kind
of semi-universal file format between simulation environments. But there
is also the case where you dd from a running system for purposes such as
planning preventative maintenance, disaster recovery, forensics,
security testing to mention a few. Not too many of the open source
simulators do this but many of the closed source ones do.
--
Dan Shearer
dan@shearer.org
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
^ permalink raw reply
* Re: [patch] 2.6.1-mm5 compile do not use shared extable code for
From: David Mosberger @ 2004-01-28 6:06 UTC (permalink / raw)
To: Paul Mackerras
Cc: davidm, Andrew Morton, Jes Sorensen, linux-kernel, linux-ia64
In-Reply-To: <16406.63734.400759.452955@cargo.ozlabs.ibm.com>
>>>>> On Wed, 28 Jan 2004 10:49:10 +1100, Paul Mackerras <paulus@samba.org> said:
Paul> I really don't like the uglification of lib/extable.c.
I disagree about this being an uglification. But beauty is obviously
in the eye of the beholder...
Anyhow, you clearly feel _much_ stronger about this particular issue
than I do and I haven't heard much from Andrew, so I'll make a local
version of sort_extable() for now. If someone cares about
resurrecting a generic version, they can do that later on.
--david
^ permalink raw reply
* Re: [patch] 2.6.1-mm5 compile do not use shared extable code for ia64
From: David Mosberger @ 2004-01-28 6:06 UTC (permalink / raw)
To: Paul Mackerras
Cc: davidm, Andrew Morton, Jes Sorensen, linux-kernel, linux-ia64
In-Reply-To: <16406.63734.400759.452955@cargo.ozlabs.ibm.com>
>>>>> On Wed, 28 Jan 2004 10:49:10 +1100, Paul Mackerras <paulus@samba.org> said:
Paul> I really don't like the uglification of lib/extable.c.
I disagree about this being an uglification. But beauty is obviously
in the eye of the beholder...
Anyhow, you clearly feel _much_ stronger about this particular issue
than I do and I haven't heard much from Andrew, so I'll make a local
version of sort_extable() for now. If someone cares about
resurrecting a generic version, they can do that later on.
--david
^ permalink raw reply
* IDE status timeout
From: Xupei Liang @ 2004-01-28 6:13 UTC (permalink / raw)
To: linuxppc-embedded
Hi,
I have a customed board that is running Linux 2.4.19
and XFS and that has a compactFlash card. The
compactFlash card is running in true IDE mode. I ran
into the following error once in a while. It is very
difficult to reproduce.
>hda: status timeout: status=0xd0 { Busy }
>hda: no DRQ after issuing WRITE
>ide0: reset timed-out, status=0x80
>hda: status timeout: status=0x80 { Busy }
>hda: drive not ready for command
>ide0: reset timed-out, status=0x80
>end_request: I/O error, dev 03:02 (hda), sector 71472
>end_request: I/O error, dev 03:02 (hda), sector 71480
>end_request: I/O error, dev 03:02 (hda), sector 77264
>end_request: I/O error, dev 03:02 (hda), sector 77272
>end_request: I/O error, dev 03:02 (hda), sector
115537
>I/O error in filesystem ("ide0(3,2)") meta-data dev
0x302 block 0x1c351
>
I read some discussions on a similar (or same?)
problem in another forum.
http://www.ussg.iu.edu/hypermail/linux/kernel/0312.3/index.html#1111
But my problem seems to be different because even a
soft reset can not reset the card and the problem
happens very randomly. The compactFlash card seems to
be stuck. Has anybody seen this problem before?
Thank you in advanced for your input.
Regards,
Terry Liang
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply
* Re: JFFS2 case insensitivity
From: David Woodhouse @ 2004-01-28 6:13 UTC (permalink / raw)
To: manningc2; +Cc: MTD List, Jarkko Lavinen
In-Reply-To: <20040127224134.9F91515D43@desire.actrix.co.nz>
On Wed, 2004-01-28 at 11:49 +1300, Charles Manning wrote:
> On Wednesday 28 January 2004 04:18, David Woodhouse wrote:
> > I _really_ don't want to have the JFFS2 code play with character
> > sets and know that û is really the same as �, etc. And don't get
> > me started on Ŵ and ŵ :)
Quod Erat Demonstrandum. :)
--
dwmw2
^ permalink raw reply
* Re: [2.0.40-rc8] Works well
From: Markus Hästbacka @ 2004-01-28 6:13 UTC (permalink / raw)
To: David Weinehall; +Cc: Coywolf Qi Hunt, Kernel Mailinglist
In-Reply-To: <20040128033755.GC16675@khan.acc.umu.se>
On Wed, 28 Jan 2004, David Weinehall wrote:
> On Wed, Jan 28, 2004 at 03:28:30AM +0000, Coywolf Qi Hunt wrote:
> ...
> > Recently I just have such an idea that is to port the 2.0.39 to let it
> > be compiled with my gcc 2.95.4 or any
> > other latest gcc. At the same time, also make it remain compliant to
> > gcc 2.7.2.1. ( I can't find 2.7.2.1, only 2.7.2.3
> > on the ftp) Is this work worth while?
>
> Well, for sure it's quite a demanding task, since, if I remember
> correctly, the module-code uses some nasty internal gcc-knowledge to
> generate code, that simply doesn't work with later versions of gcc.
> It might be that I remember this incorrectly though.
>
only the module-code? :)
> It would be interesting, yes, but only if it can be proved to some
> degree that no new bugs are introduced.
>
That would probably be impossible to do without introducing any bugs..
> My aim for 2.0.41 is to make it a cleanup-release; remove warnings, tidy
> up a little source-code mess, kill dead code, fix typos etc.
>
Sounds great, a bit amazing that 2.0 is alive again :)
Markus
^ permalink raw reply
* cs46xx capture dropout on busy systems
From: Perry Scott @ 2004-01-28 6:14 UTC (permalink / raw)
To: alsa-devel
[2.4.23]
I've been chasing a capture dropout in the old OSS cs46xx driver
(drivers/sound/cs46xx.c) for the past two months (evenings and weekends),
and I finally nailed it. I looked over at the ALSA driver, and I think I
see the same problem there as well. I traced the peek/poke(PD1_CBA) from
the update_ptr routine to the read routine, so I'm pretty confident the bug
is there.
Briefly, I'm doing 8-channel recording, using 4 TB Santa Cruz
cards. Occasionally, one of the cards loses a chunk of data. I traced the
problem to the 4k dma buffer size. The IRQ updates the capture pointer,
but it only has a 1/44th second real-time latency before it loses data. If
the read doesn't get reposted by the application within that time, data
will be lost. All it really takes is a busy system - either an IRQ from
another card, or another thread getting in the way.
I fixed the problem in the OSS driver by copying the 4k ping-pong into a
larger buffer, which is then drained by read(). Essentially, I implemented
the Scatter/Gather in the ISR. It's not pretty, but it
works. (Incidentally, if anyone has found the Cirrus documentation on
cs46xx capture S/G, I'd be most appreciative. The only document I found in
the ALSA documentation archive glibly said that S/G is "complicated" and
that 1/44th second should be OK - yeah, right.)
This problem is likely to affect *any* sound card with a 4k dma
ping-pong. I'm not sure if the cs46xx is the only pathological case out
there, but I wouldn't be surprised if there are others. The really
disturbing thought is that ALSA itself has real-time issues because 4k is a
common dma size (say it isn't so!)
I'm a couple weeks away from porting my application to ALSA, so if someone
else wants to load up a bunch of sound cards, feel free. I'm finding the
bug injecting a sine wave into the four cards, then looking for large
deltas from one sample to the next.
Comments?
Perry Scott
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
^ permalink raw reply
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.