- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在为基于网络的 block 设备编写驱动程序。相同的读取操作成功,但其他读取操作似乎无法生成此内核哎呀:
[ 170.289421] ------------[ cut here ]------------
[ 170.289424] Kernel BUG at ffffffff81330120 [verbose debug info unavailable]
[ 170.289425] invalid opcode: 0000 [#14] SMP
[ 170.289427] Modules linked in: dor(OF) ksocket(OF) nls_utf8(F) isofs(F) snd_ens1371(F) gameport(F) snd_ac97_codec(F) coretemp(F) ghash_clmulni_intel(F) ac97_bus(F) cryptd(F) snd_pcm(F) snd_seq_midi(F) joydev(F) snd_rawmidi(F) snd_seq_midi_event(F) hid_generic(F) snd_seq(F) vmw_balloon(F) snd_timer(F) snd_seq_device(F) microcode(F) psmouse(F) serio_raw(F) vmwgfx(F) ttm(F) snd(F) drm(F) bnep(F) i2c_piix4(F) rfcomm(F) soundcore(F) bluetooth(F) snd_page_alloc(F) ppdev(F) parport_pc(F) usbhid(F) hid(F) shpchp(F) mac_hid(F) lp(F) parport(F) e1000(F) floppy(F) mptspi(F) mptscsih(F) mptbase(F)
[ 170.289443] CPU 1
[ 170.289445] Pid: 2706, comm: read_thread Tainted: GF D O 3.8.0-29-generic #42~precise1-Ubuntu VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform
[ 170.289447] RIP: 0010:[<ffffffff81330120>] [<ffffffff81330120>] blk_finish_request+0xf0/0x100
[ 170.289450] RSP: 0018:ffff88010787de58 EFLAGS: 00010216
[ 170.289451] RAX: 0000000000000000 RBX: ffff8801282afdb0 RCX: ffffffffffffffff
[ 170.289452] RDX: 0000000000000001 RSI: 0000000000000000 RDI: ffff8801282afdb0
[ 170.289453] RBP: ffff88010787de68 R08: 000000000000007f R09: 0000000000000000
[ 170.289454] R10: 000000000000004c R11: 0000000000000033 R12: 0000000000000000
[ 170.289455] R13: ffffffffa02a62e0 R14: 0000000000000000 R15: 0000000000000000
[ 170.289456] FS: 0000000000000000(0000) GS:ffff88013ae20000(0000) knlGS:0000000000000000
[ 170.289458] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 170.289459] CR2: 00007f65ae3d7d7c CR3: 0000000001c0d000 CR4: 00000000001407e0
[ 170.289481] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 170.289500] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 170.289502] Process read_thread (pid: 2706, threadinfo ffff88010787c000, task ffff880136589740)
[ 170.289503] Stack:
[ 170.289504] ffff8801282afdb0 0000000000000000 ffff88010787de88 ffffffff81331fe4
[ 170.289507] ffff88013675e740 ffff88013675e740 ffff88010787de98 ffffffff8133201f
[ 170.289509] ffff88010787deb8 ffffffffa02a630b ffff88013675e740 ffff880137cdf8e0
[ 170.289511] Call Trace:
[ 170.289514] [<ffffffff81331fe4>] __blk_end_bidi_request+0x34/0x50
[ 170.289516] [<ffffffff8133201f>] __blk_end_request_all+0x1f/0x30
[ 170.289519] [<ffffffffa02a630b>] kThread_fun_read+0x2b/0x40 [dor]
[ 170.289522] [<ffffffff8107f1b0>] kthread+0xc0/0xd0
[ 170.289524] [<ffffffff8107f0f0>] ? flush_kthread_worker+0xb0/0xb0
[ 170.289527] [<ffffffff816fc82c>] ret_from_fork+0x7c/0xb0
[ 170.289529] [<ffffffff8107f0f0>] ? flush_kthread_worker+0xb0/0xb0
[ 170.289530] Code: 89 de e8 44 2b 00 00 e9 4b ff ff ff 83 7b 44 01 0f 85 58 ff ff ff 48 8b 7b 38 48 81 c7 60 01 00 00 e8 35 05 e1 ff e9 43 ff ff ff <0f> 0b 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00
[ 170.289553] RIP [<ffffffff81330120>] blk_finish_request+0xf0/0x100
[ 170.289555] RSP <ffff88010787de58>
[ 170.289557] ---[ end trace 697188dbdb5f7c34 ]---
知道如何解决这个问题吗?我可以将代码发送给任何愿意提供帮助的人。
提前致谢!
最佳答案
“无效操作码”通常意味着您遇到了BUG_ON()防护。由于这是在 blk_finish_request() 中,因此可能是这一行: block/blk-core.c (2111): BUG_ON(blk_queued_rq(req)); -- 3.8.x 内核的行号 2458。
http://lxr.free-electrons.com/source/block/blk-core.c?v=3.8#L2453
static void blk_finish_request(struct request *req, int error)
{
if (blk_rq_tagged(req))
blk_queue_end_tag(req->q, req);
BUG_ON(blk_queued_rq(req));
if (unlikely(laptop_mode) && blk_fs_request(req))
laptop_io_completion();
blk_delete_timer(req);
blk_account_io_done(req);
if (req->end_io)
req->end_io(req, error);
else {
if (blk_bidi_rq(req))
__blk_put_request(req->next_rq->q, req->next_rq);
__blk_put_request(req->q, req);
}
}
也许 blk_end_request_all() 在这里不是正确的调用。当一切完成后,其他驱动程序似乎会使用它。访问 lxr.free-electrons.com 了解它的常用用法。
关于linux - 网络 block 设备 - 某些读取请求失败 - 内核 OOPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18905772/
我的 blockly.js 文件中有以下代码 Blockly.Blocks['account_number'] = { // Other type. init: function() {
首先抱歉我的英语不好,我正在开发 Image Splitter 应用程序并且已经完成,但是现在的要求是当图像被分割(分成几 block /chunks)那么图像 block 的每一 block (ch
#value: 消息的返回值,当发送到一个 block 时,是该 block 中最后一句话的值。所以 [ 1 + 2. 3 + 4. ] value 计算结果为 7。我发现有时很难使用。有没有办法显式
我想构建一个包含 3 div 的响应式导航栏相同的 width和 height . 我申请了 inline-block到每个 block ,我得到一个我不理解的行为。 问题是,第三 block 由 2
我希望使用 Blockly 来允许非技术人员用户指定测试脚本。 它的一部分需要一个文件选择器,但是,我看不到 Blockly 有一个。是吗? 实际上,我找不到完整的标准 block 列表。谁有网址?
仅当您位于父 block 内部时,父 block 的 props.isSelected 才为 true,但当您在该 block 的 innerBlocks 内进行编辑时则不然。 如何从父 block
仅当您位于父 block 内部时,父 block 的 props.isSelected 才为 true,但当您在该 block 的 innerBlocks 内进行编辑时则不然。 如何从父 block
我想创建一个具有不同背景颜色 block 和不同悬停颜色 block 的导航栏 block 。我可以分别创建不同的悬停颜色 block 或不同的背景颜色 block ,但不能一起创建。所以请告诉我如何
我正在使用看到的代码 here定期执行代码: #define DELAY_IN_MS 1000 __block dispatch_time_t next = dispatch_time(DISPATC
为什么 block 必须被复制而不是保留?两者在引擎盖下有什么区别?在什么情况下不需要复制 block (如果有)? 最佳答案 通常,当您分配一个类的实例时,它会进入堆并一直存在,直到它被释放。但是,
我想弄清楚我这样做是否正确: 如果我有一个 block ,我会这样做: __weak MyClass *weakSelf = self; [self performBlock:^{
我想制作一个 4 block 导航菜单,虽然我已经显示了一个 block ,然后单击打开第二个 block ,从第二个开始选择并再次单击出现第三个 block ,第四个 block 相同...这是我的
例如,这样更好吗? try { synchronized (bean) { // Write something } } catch (Int
我想让一只乌龟检查前方小块的颜色并决定移动到哪里。如果前面的补丁不是白色的,那么乌龟向左或向右旋转并移动。我的 If 决策结构中出现错误,显示“此处应为 TRUE?FALSE,而不是 block 列表
我想创建一个 block 对角矩阵,其中对角 block 重复一定次数,非对角 block 都是零矩阵。例如,假设我们从一个矩阵开始: > diag.matrix [,1] [,2] [
我是区 block 链新手。突然我有一个问题,我们是否可以通过区 block 号来访问以太坊区 block 链上之前的区 block 数据。 例如我创建了一个block1、block2。 block
我是区 block 链新手。突然我有一个问题,我们是否可以通过区 block 号来访问以太坊区 block 链上之前的区 block 数据。 例如我创建了一个block1、block2。 block
我创建了一个等距环境,全部使用 Javascript 和 HTML5 (2D Canvas),大部分情况下工作正常。我面临的问题是使用不同高度的图 block ,然后对图 block 上的对象索引进行
这是令我困惑的代码: public Integer getInteger(BlockingQueue queue) { boolean interrupted = false; try
我有一个基于 TPL 数据流的应用程序,它仅使用批处理 block 和操作 block 就可以正常工作。 我已经添加了一个 TransformBlock 以尝试在发布到批处理 block 之前从源中转
我是一名优秀的程序员,十分优秀!