Sponsored Content
Operating Systems Linux Read data of a page frame (linux) make freeze the system Post 302353302 by hahai on Tuesday 15th of September 2009 05:27:17 AM
Old 09-15-2009
Read data of a page frame (linux) make freeze the system

Hello,

I'm writing a linux driver that reading the data of a page frame of an process. But when I use it, it make immediately freeze the system. Can you help me? Thank for reading my question!

system: Ubuntu 9.04, kernel 2.6.28.15, Intel Duo

Code:
static int read_addr(int pid, unsigned long linear_addr, unsigned int n_bytes, char* buff){
    /* 
    pid: id of process
    linear_addr: linear address of memory region to be read
    n_bytes: nombre bytes to be read
    buff: the buffer containing the result
    */
    
    struct task_struct *task;
       struct mm_struct *mm = NULL;

    pgd_t *pgd;
    pmd_t *pmd; 
    pte_t *pte; 
    unsigned long pteval;

    int ret = 0;    

    for_each_process(task) {
        if ( task->pid == pid) {
            mm = task->mm;
        }
    }
    if(mm == NULL)
        return 1;
 
    spin_lock(&mm->page_table_lock); 
    
    pgd = pgd_offset(mm, linear_addr); 
    if (pgd_none(*pgd)) { ret = 2; goto out; }
    
    pmd = pmd_offset(pgd, linear_addr); 
    if (pmd_none(*pmd)) { ret = 3; goto out; }
    
    pte = pte_offset_map(pmd, linear_addr);
    
    if (pte_present(*pte)){
        unsigned long pteid = pte_index(linear_addr);
        pteval = pte_val(*pte);
        memcpy(buff, pteval + pteid, n_bytes);     
    } else { 
        ret = 4;
        goto out;
    } 
    pte_unmap(pte);
    spin_unlock(&mm->page_table_lock);
    return 0; 

 out:
     printk("error: %d\n", ret); 
    spin_unlock(&mm->page_table_lock);
    return ret;        
}


Last edited by hahai; 09-15-2009 at 09:47 AM..
 

8 More Discussions You Might Find Interesting

1. Filesystems, Disks and Memory

How to mount/make a FAT system on Linux

Yea i was wondering how i would mount, and create a FAT directory that way i can save files in the FAT directory in a windows system and be able to access them on Linux systems. Or if there is any other way to share files between Linux and Windows. Any responds will help... thanks! (2 Replies)
Discussion started by: kyoist
2 Replies

2. Linux

How to trace the module after system freeze?

Hi, I wrote a kernel module that did a virtual network protocol and library that provide interface for application use to interact with the kernel module by ioctl actions. insmod the module and unload the module, there will be no problem. But once I call the library with my example... (0 Replies)
Discussion started by: a2156z
0 Replies

3. SCO

Help on System Freeze in SCO

Hi, My SCO server freezes suddenly. I just want to know if there any tools / commands availble that can find which is causing the freeze? Any help on this would be greatly appreciated. Regards, Ravikumar R (4 Replies)
Discussion started by: rrb2009
4 Replies

4. UNIX for Advanced & Expert Users

read system call reading the same data

Hi, I wrote a program, to read from a master terminal. However, the 'read' system call keeps returning the same data endlessly (I expected it to read once and then block). What will cause t data to be flushed, after 1 read? #include <stdio.h> #include <string.h> #include <sys/types.h>... (1 Reply)
Discussion started by: karthikb23
1 Replies

5. UNIX for Advanced & Expert Users

how to make a full system backup excluding data and restoring it to a new system

Hi, In order to have a sand box machine that I could use to test some system changes before going to production state, I'd like to duplicate a working system to a virtual one. Ideally, I'd like to manage to do it this way : - Make a full system backup excluding the user file system (this... (7 Replies)
Discussion started by: pagaille
7 Replies

6. Cybersecurity

Freeze system

hello is there any freeze software for Linux-redhat system to prevent any changes on /root (wish open topic on right forum) (3 Replies)
Discussion started by: nimafire
3 Replies

7. UNIX for Dummies Questions & Answers

Read data from excel and upload into html page

Hi, I have requirement for automation, wanna confirm whether is it possible in shell scripting. 1) Need to read data from excel sheet 2) And upload the details in html page I know first requirement is possible by converting excel into csv form, but not sure about the second one. If... (6 Replies)
Discussion started by: stew
6 Replies

8. Programming

How to make use others' C library installed not for the system-wide (Ubuntu/Linux)?

I have downloaded and installed a library called htslib for specific bioinformatic use but not for the system (I'm using Ubuntu 18.04). Only parts of the library is needed for my exercise to parse data in a type called VCF format (basically tab-delimited file but contains many information in... (14 Replies)
Discussion started by: yifangt
14 Replies
FSCK.CRAMFS(8)                                                 System Administration                                                FSCK.CRAMFS(8)

NAME
fsck.cramfs - fsck compressed ROM file system SYNOPSIS
fsck.cramfs [options] file DESCRIPTION
fsck.cramfs is used to check the cramfs file system. OPTIONS
-v, --verbose Enable verbose messaging. -b, --blocksize blocksize Use this blocksize, defaults to page size. Must be equal to what was set at creation time. Only used for --extract. --extract[=directory] Test to uncompress the whole file system. Optionally extract contents of the file to directory. -a This option is silently ignored. -y This option is silently ignored. -V, --version Display version information and exit. -h, --help Display help text and exit. EXIT STATUS
0 success 4 file system was left uncorrected 8 operation error, such as unable to allocate memory 16 usage information was printed SEE ALSO
mount(8), mkfs.cramfs(8) AVAILABILITY
The example command is part of the util-linux package and is available from Linux Kernel Archive <https://www.kernel.org/pub/linux/utils /util-linux/>. util-linux April 2013 FSCK.CRAMFS(8)
All times are GMT -4. The time now is 07:12 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy