网卡-Linux内核调用do_filp_open,返回0xfffffffe

问题描述

Linux内核调用do_filp_open,返回0xfffffffe

大家好:
最近在调试Realtek的8188cu的USB无线网卡,加载驱动时需要一个Firmware,我看了代码,驱动会在指定的几个目录寻找。
[path_openat][2931] ./lib/firmware/rtlwifi/rtl8192cufw.bin
而且我把rtl8192cufw.bin放在了根目录下面的/lib/firmware/rtlwifi/rtl8192cufw.bin
但是do_filp_open调用的path_openat总是返回0xFFFFFFFE回来,导致IS_ERR(file)一直为真。
想请问一下CSDN的大神Linux内核工作时的"./"是在哪个目录?除了文件不存在意外还有没有什么情况会导致path_openat返回0xFFFFFFFE?

解决方案

Linux内核中的do{}while(0)
linux内核中 do{}while(0)用法分析
Linux内核码中的do{...}while(0)意义

时间: 2024-09-28 09:19:06

网卡-Linux内核调用do_filp_open,返回0xfffffffe的相关文章

关于Linux内核读取磁盘序列号的研究

一向的观点就是"别在内核里面处理字符串"!事实上,确实应该如此! Linux内核的块设备驱动有能力读取磁盘的序列号,这个数据存储在磁盘的控制芯片ROM里面.内核应该以怎样的形式将这个序列号呈现给调用者呢?我们ls一下这个目录: /dev/disk/by-id ll /dev/disk/by-id/ ... lrwxrwxrwx 1 root root 9 10月 17 10:11 scsi-SATA_ST3500413AS_Z2A2AGQA -> ../../sdb 可以看到,一

Linux内核剖析 之 回收页框

一.页框回收算法 1.为何要有页框回收算法?     Linux在为用户态与内核分配动态内存时,检查得并不严谨.     例如:     (1).对单个用户创建的进程的RAM使用的总量并不作严格的检查(进程资源的限制只针对单个进程):     (2).对内核使用的许多磁盘高速缓存和内存高速缓存大小也同样不做限制. 2.为何要减少控制?     可以使内核以最好的可行方式使用可用的RAM:     (1).当系统负载较低时,RAM的大部分由磁盘高速缓存占用,较少的正在运行的进程可以获益:     

Linux内核抢占与中断返回【转】

转自:http://blog.csdn.net/tommy_wxie/article/details/7425728 版权声明:本文为博主原创文章,未经博主允许不得转载. [html] view plain copy print? 1.上下文 一般来说,CPU在任何时刻都处于以下三种情况之一: (1)运行于用户空间,执行用户进程: (2)运行于内核空间,处于进程上下文: (3)运行于内核空间,处于中断上下文. 应用程序通过系统调用陷入内核,此时处于进程上下文.现代几乎所有的CPU体系结构都支持中

浅析linux内核中timer定时器的生成和sofirq软中断调用流程【转】

转自:http://blog.chinaunix.net/uid-20564848-id-73480.html 浅析linux内核中timer定时器的生成和sofirq软中断调用流程   mod_timer添加的定时器timer在内核的软中断中发生调用,__run_timers会spin_lock_irq(&base->lock);禁止cpu中断,所以我们的timer回调处理函数handler工作在irq关闭的环境中,所以需要作很多考虑,比如在handler中尽量不要执行会引起pending

linux内核空间和用户空间的是怎样区别的,如何交互,如何从用户空间进入内核空间

转载 - linux内核空间和用户空间的是怎样区别的,如何交互,如何从用户空间进入内核空间 作者 digoal 日期 2016-11-20 标签 Linux , 用户空间 , 内核空间 , 用户态 , 内核态 , 进程上下文 , 中断上下文 背景 原文 http://blog.csdn.net/bingqingsuimeng/article/details/7924756 原文 linux驱动程序一般工作在内核空间,但也可以工作在用户空间.下面我们将详细解析,什么是内核空间,什么是用户空间,以及

Linux内核的内存屏障

内容: 抽象的内存访问模型 设备操作 保障 什么是内存屏障? 内存屏障的种类 什么是内存屏障不能确保的? 数据依赖屏障 控制依赖 SMP屏障配对 内存屏障顺序的例子 read内存屏障与load预取 传递性 显式内核屏障 编译屏障 CPU内存屏障 MMIO write屏障 隐式内核内存屏障 锁功能 中断禁用功能 休眠和唤醒功能 其它函数 CPU之间的锁屏障效应 锁与内存访问 锁与I/O访问 什么地方需要内存障碍? 多处理器间的交互 原子操作 设备访问 中断 内核的I/O屏障效应 假想的最小执行顺序

linux内核空间与用户空间信息交互方法

     摘要:在进行设备驱动程序,内核功能模块等系统级开发时,通常需要在内核和用户程序之间交换信息.Linux提供了多种方法可以用来完成这些任务.本文总结了各种常用的信息交换方法,并用简单的例子演示这些方法各自的特点及用法.其中有大家非常熟悉的方法,也有特殊条件下方可使用的手段.通过对比明确这些方法,可以加深我们对Linux内核的认识,更重要的是,可以让我们更熟练驾御linux内核级的应用开发技术. 内核空间(kernel-space) VS 用户空间(user-space) 作为一个Linu

Linux内核驱动中对文件的读写

有时候需要在Linux kernel–大多是在需要调试的驱动程序–中读写文件数据.在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主 要有: filp_open() filp_close(), vfs_read() vfs_write(),set_fs(),get_fs()等,这些函数在linux/fs.h和asm/uaccess.h头文件中声明.下面介绍主要步骤 1. 打开文件 filp_open()在kernel中可以打开文件,其原形如下: strcut fi

linux内核select/poll,epoll实现与区别_C 语言

下面文章在这段时间内研究 select/poll/epoll的内核实现的一点心得体会: select,poll,epoll都是多路复用IO的函数,简单说就是在一个线程里,可以同时处理多个文件描述符的读写. select/poll的实现很类似,epoll是从select/poll扩展而来,主要是为了解决select/poll天生的缺陷. epoll在内核版本2.6以上才出现的新的函数,而他们在linux内核中的实现都是十分相似. 这三种函数都需要设备驱动提供poll回调函数,对于套接字而言,他们是