| Home |
| About me |
| My CV |
| Hobbies |
| Professional Experiences |
| Projects |
| Computer skills |
| My Gentoo Overlay |
| Gallery |
| Personal gallery |
| Guestbook |
| Contact me |
| Gentoo |
| *nix |
| Programming |
| Softwares |
| Misc |
| Patch for vhba-module to work with kernel 2.6.25 |
This patch will make vhba module 1.0 compile with kernel 2.6.25 It fixes the following errors:
/setup/work/cdemu-1.0/vhba-module-org/vhba.c:490: error: ‘struct scsi_cmnd’ has no member named ‘request_bufflen’
/setup/work/cdemu-1.0/vhba-module-org/vhba.c:491: error: ‘struct scsi_cmnd’ has no member named ‘request_bufflen’ /setup/work/cdemu-1.0/vhba-module-org/vhba.c:496: error: ‘struct scsi_cmnd’ has no member named ‘use_sg’ /setup/work/cdemu-1.0/vhba-module-org/vhba.c:500: error: ‘struct scsi_cmnd’ has no member named ‘request_buffer’ Click here to download it Here comes the patch:
--- vhba-module-org/vhba.c 2008-03-03 19:31:06.000000000 +0100
+++ vhba-module-1.0.0/vhba.c 2008-03-03 20:04:30.000000000 +0100 @@ -425,11 +425,11 @@ ssize_t ret; scmd_dbg(cmd, "request %lu, cdb 0x%x, bufflen %d, use_sg %d\n", - cmd->serial_number, cmd->cmnd[0], cmd->request_bufflen, cmd->use_sg); + cmd->serial_number, cmd->cmnd[0], cmd->sdb.length, cmd->sdb.table.nents); ret = sizeof(vreq); if (DATA_TO_DEVICE(cmd->sc_data_direction)) - ret += cmd->request_bufflen; + ret += cmd->sdb.length; if (ret > buf_len) { @@ -442,7 +442,7 @@ vreq.lun = cmd->device->lun; memcpy(vreq.cdb, cmd->cmnd, MAX_COMMAND_SIZE); vreq.cdb_len = cmd->cmd_len; - vreq.data_len = cmd->request_bufflen; + vreq.data_len = cmd->sdb.length; if (copy_to_user(buf, &vreq, sizeof(vreq))) return -EFAULT; @@ -452,7 +452,7 @@ buf += sizeof(vreq); /* XXX use_sg? */ - if (copy_to_user(buf, cmd->request_buffer, vreq.data_len)) + if (copy_to_user(buf, cmd->sdb.table.sgl, vreq.data_len)) return -EFAULT; } @@ -464,7 +464,7 @@ ssize_t ret = 0; scmd_dbg(cmd, "response %lu, status %x, data len %d, use_sg %d\n", - cmd->serial_number, res->status, res->data_len, cmd->use_sg); + cmd->serial_number, res->status, res->data_len, cmd->sdb.table.nents); if (res->status) { @@ -481,23 +481,23 @@ ret += res->data_len; } - else if (DATA_FROM_DEVICE(cmd->sc_data_direction) && cmd->request_bufflen) + else if (DATA_FROM_DEVICE(cmd->sc_data_direction) && cmd->sdb.length) { size_t to_read; - if (res->data_len > cmd->request_bufflen) + if (res->data_len > cmd->sdb.length) { - scmd_warn(cmd, "truncate data (%d < %d)\n", cmd->request_bufflen, res->data_len); - res->data_len = cmd->request_bufflen; + scmd_warn(cmd, "truncate data (%d < %d)\n", cmd->sdb.length, res->data_len); + res->data_len = cmd->sdb.length; } to_read = res->data_len; - if (cmd->use_sg) + if (cmd->sdb.table.nents) { unsigned char buf_stack[64]; unsigned char *kaddr, *uaddr, *kbuf; - struct scatterlist *sg = cmd->request_buffer; + struct scatterlist *sg = cmd->sdb.table.sgl; int i; uaddr = (unsigned char *) buf; @@ -507,7 +507,7 @@ else kbuf = buf_stack; - for (i = 0; i < cmd->use_sg; i++) + for (i = 0; i < cmd->sdb.table.nents; i++) { size_t len = (sg[i].length < to_read) ? sg[i].length : to_read; @@ -534,13 +534,13 @@ } else { - if (copy_from_user(cmd->request_buffer, buf, res->data_len)) + if (copy_from_user(cmd->sdb.table.sgl, buf, res->data_len)) return -EFAULT; to_read -= res->data_len; } - cmd->resid = to_read; + cmd->sdb.resid = to_read; ret += res->data_len - to_read; } Last update: 04-03-2008 17:59
|
| Next > |
|---|