一个 PCI 可用多个不同的方法被从系统中去除. 所有的 card-bus 设备在一个不同的物 理因素上是真正的 PCI 设备, 并且内核 PCI 核心不区分它们. 允许在机器运行时加减 PCI 设备的系统正变得更加普遍, 并且 Linux 支持它们. 还有一个伪 PCI 热插拔驱动允 许开发者来测试看是否他们的 PCI 驱动正确处理系统运行中的设备去除. 这个模块称为 fakephp 并且使内核认为 PCI 设备已消失, 但是它不允许用户物理上从系统中去除一个 PCI 设备, 这个系统没有合适的硬件来这样做. 见这个驱动的文档来获取更多关于如何使 用它测试你的 PCI 驱动的信息.

PCI 核心发挥了不少于它增加设备的努力到去除它. 当一个 PCI 设备要被去除, pci_remove_bus_device 函数被调用. 这个函数做一些 PCI-特定 的清理和日常工作, 并 且接着使用一个指向 struct pci_dev 的 struct device 成员的指针调用 device_unregister 函数.

在 device_unregister 函数中, 驱动核心只从绑定到这个设备(如果有)的驱动解除连接 sysfs 文件, 从它的内部设备列表中去除这个设备, 并且使用指向包含在 struct device 结构中的 struct kobject 的指针调用 kobject_del. 这个函数用一个 hotplug 调用到 用户空间来声明 kobject 现在被从系统中去除, 并且接着它删除所有的和 kobject 关联 的 sysfs 文件以及这个 kobject 起初已创建的 sysfs 目录自身.

kobject_del 函数也去除设备自身的 kobject 引用. 如果那个引用是最后一个( 意味着 没有用户空间文件为这个 sysfs 的设备入口而打开 ), 接着是 PCI 设备自身的 release 函数, pci_release_dev, 被调用. 这个函数只释放 struct pci_dev 占用的内存.

此后, 所有的和这个设备关联的 sysfs 入口被去除, 并且和这个设备关联的内存被释放. PCI 设备现在完全从系统中被去除.

linux如何禁止pci设备,Linux 内核PCI去除一个设备相关推荐

  1. Linux 内核PCI去除一个设备

    一个 PCI 可用多个不同的方法被从系统中去除. 所有的 card-bus 设备在一个不同的物 理因素上是真正的 PCI 设备, 并且内核 PCI 核心不区分它们. 允许在机器运行时加减 PCI 设备 ...

  2. linux怎样禁止他人远程,linux禁止用户远程登录的方法

    linux禁止用户远程登录的方法: 1.在新添加一个新用户的时候就指定这个用户不能远程登录 useradd  -s /sbin/nologin zgsj        //这里就是创建了一个不能远程登 ...

  3. linux c 禁止对外通信,Linux c 屏蔽信号、切换信号

    信号导致的问题 不是任何信号我们都需要的,如果遇到我们不想处理的信号,我们怎么避免这个信号? 1.      信号屏蔽 intsigprocmask(int how,//操作方式 SIG_BLOCK屏 ...

  4. linux系统禁止邮箱服务,Linux禁止smtp发送邮件,禁止25端口,防止垃圾邮件

    有时候,一些网站不小心被黑,导致垃圾邮件泛滥而遭到投诉,这是我们不想遇到的.怎么样在Linux禁止smtp发送邮件,禁止25端口,防止垃圾邮件?我们可以用iptables来实现屏蔽25端口,如果服务器 ...

  5. linux c 禁止对外通信,Linux C套接字:在recv调用时被阻止

    在我的应用程序中,我为简单的http服务器创建了一个线程,然后从我的应用程序中尝试连接到http服务器,但是在recv调用中控件被阻止/挂起. 但是,如果尝试使用linux GET命令连接到应用程序的 ...

  6. linux 怎么禁止遍历目录,linux下遍历目录功能实现

    /* 编译: dir:dir.c gcc -o $@ $< */ #include #include #include #include #include int do_search_dir(c ...

  7. Linux操作系统原理与应用09(完):设备驱动

    目录 1. 设备驱动概述 1.1 万物皆文件 1.2 设备分类 1.2.1 块设备 1.2.2 字符设备 1.2.3 网络设备 1.3 设备驱动分层结构 1.3.1 驱动类型与驱动分层 1.3.1 块 ...

  8. linux 设置禁止ping,linux设置禁止ping

    linux禁止ping 为了服务器的安全, 防止网络攻击(DOS 攻击消耗网络宽带,CPU资源), 需要服务器设置 禁止ping 通常有两种方式 第一种是通过防火墙 iptables 设置 第二种是内 ...

  9. 用win引导linux系统,用WinGrub 引导Linux

    用WinGrub 引导Linux 发布时间:2005-12-18 10:10:33来源:红联作者:cha 转载 一.开篇叙述我第一次安装Linux和接下来的经历(遭遇) 开篇:按照北南兄弟的<F ...

最新文章

  1. android Android build.gradle 配置注释
  2. php barcode_php生成条形码
  3. 修改网络MAC地址的技巧
  4. c# 学习笔记 (3) 窗体单例模式
  5. UA SIE545 优化理论基础4 对偶理论简介3 强对偶
  6. 【经典C#.NET入门教程】管理软件开发必备知识免费视频教程下载
  7. linux suse 安装redis,在openSuse linux上Redis安装简单步骤
  8. 删除指定天数之前的日期文件夹
  9. 【springBoot】注解的详解
  10. 让shell终端和goland控制台输出彩色的文字
  11. Autodesk AutoCAD 2023 Mac中文版安装方法
  12. 英语诗歌选读 | 期末总结
  13. PS 之用钢笔工具画曲线图
  14. 三维重建——D2HC-RMVSNet网络详解
  15. 好的技术领导与差的技术领导,千万不要对号入座,你会死的很惨!
  16. scrapy爬取知乎问题实战
  17. 2、java语言基础课程2
  18. fastjson之@JSONField注解的几个的使用详细示范
  19. 图像处理学习 灰度图像与二值图像
  20. 公钥密码系统主要依赖的三种数学难题:1.大整数因子分解问题 2.离散对数问题 (DLP问题) 3. 椭圆曲线上的离散对数问题(ECDLP)

热门文章

  1. 博客园编辑器插入code功能试用及与EditPlus的语法高亮比较
  2. 13.python中的字典
  3. POJ2976-Dropping tests-01分数规划
  4. [转]MySQL5.6.22 安装
  5. leetcode Distinct Subsequences
  6. 谨防职业病 IT人士必不可少的四类食物
  7. 解决金蝶未检测到K/3许可文件,并且该账套已超过演示版期限问题
  8. 一个常见问题的解决——Ext grid的宽度高度如何自适应
  9. java.lang.NoClassDefFoundError异常处理
  10. 【报告分享】2021年品牌CDP与营销数字化转型报告.pdf(附下载链接)