From: yangzi <wyang@windriver.com>
To: ltp-list@lists.sourceforge.net
Subject: [LTP] [PATCH] [PATCH] Probe an bigger linear available address to attachment.
Date: Tue, 31 Aug 2010 17:49:37 +0800 [thread overview]
Message-ID: <4C7CD031.6060906@windriver.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 673 bytes --]
Hi
When running shmat01 on some platforms, it fails on
"addr = shmat(*(tc.shmid), base_addr + tc.offset,tc.flags);"
with a INVAL error. Look at codes in "setup()", it probes
an available address and align the address to SHMLBA. After
alignment, the new address is no guarantee to be available
any more. Here a bigger size is used to probe so that it's
still valid address after alignment.Pertaining to the function
setup_tc(lc, &tc) ,when it outside of "for (i = 0; i < TST_TOTAL;
i++)",and printf the tc.offset value is always 0,add correct a mistake
of original codes to move "setup_tc()" to right place.
Signed-off-by: Yang Wei <wei.yang@windriver.com>
wei yang
BR
[-- Attachment #2: 0001-Probe-an-bigger-linear-address-to-be-available-for-a.patch --]
[-- Type: text/x-patch, Size: 2365 bytes --]
From 13b73dc0cdd614273463959f6c6bbf460629168b Mon Sep 17 00:00:00 2001
From: Yang Wei <wyang@windriver.com>
Date: Tue, 31 Aug 2010 17:03:38 +0800
Subject: [PATCH] Probe an bigger linear available address to attachment.
When running shmat01 on some platforms, it fails on
"addr = shmat(*(tc.shmid), base_addr + tc.offset,tc.flags);"
with a EINVAL error. Look at codes in "setup()", it probes
an available address and align the address to SHMLBA. After
alignment, the new address is no guarantee to be available
any more. Here a bigger size is used to probe so that it's
still valid address after alignment.Add correct a mistake
of original codes to move "setup_tc()" to right place.
Signed-off-by: Yang Wei <wei.yang@windriver.com>
---
testcases/kernel/syscalls/ipc/shmat/shmat01.c | 15 ++++++++++++---
1 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/testcases/kernel/syscalls/ipc/shmat/shmat01.c b/testcases/kernel/syscalls/ipc/shmat/shmat01.c
index 4cb5eaf..f3bfe9d 100644
--- a/testcases/kernel/syscalls/ipc/shmat/shmat01.c
+++ b/testcases/kernel/syscalls/ipc/shmat/shmat01.c
@@ -120,11 +120,12 @@ int main(int ac, char **av)
/* reset Tst_count in case we are looping */
Tst_count = 0;
- /* setup test case paremeters */
- setup_tc(lc, &tc);
/* loop through the test cases */
for (i = 0; i < TST_TOTAL; i++) {
+
+ /* setup test case paremeters */
+ setup_tc(i, &tc);
/*
* Use TEST macro to make the call
@@ -246,6 +247,8 @@ void check_functionality(int i)
*/
void setup(void)
{
+ int shm_id_2;
+
/* capture signals */
tst_sig(NOFORK, DEF_HANDLER, cleanup);
@@ -270,12 +273,18 @@ void setup(void)
}
/* Probe an available linear address for attachment */
- if ((base_addr = shmat(shm_id_1, NULL, 0)) == (void *)-1) {
+ if ((shm_id_2 = shmget(shmkey++, INT_SIZE, SHM_RW | IPC_CREAT |
+ IPC_EXCL)) == -1) {
+ tst_brkm(TBROK, cleanup, "Failed to create shared memory "
+ "resource 1 in setup()");
+ }
+ if ((base_addr = shmat(shm_id_2, NULL, 0)) == (void *)-1) {
tst_brkm(TBROK, cleanup, "Couldn't attach shared memory");
}
if (shmdt((const void *)base_addr) == -1) {
tst_brkm(TBROK, cleanup, "Couldn't detach shared memory");
}
+ rm_shm(shm_id_2);
/* some architectures (e.g. parisc) are strange, so better always align to
* next SHMLBA address. */
--
1.6.0.4
[-- Attachment #3: Type: text/plain, Size: 247 bytes --]
------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:
Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
[-- Attachment #4: Type: text/plain, Size: 155 bytes --]
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
next reply other threads:[~2010-08-31 9:45 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-31 9:49 yangzi [this message]
2010-08-31 10:11 ` [LTP] [PATCH] [PATCH] Probe an bigger linear available address to attachment yangzi
2010-09-06 16:16 ` Subrata Modak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C7CD031.6060906@windriver.com \
--to=wyang@windriver.com \
--cc=ltp-list@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox