Merge ../scsi-rc-fixes-2.6
James Bottomley [Wed, 22 Nov 2006 18:06:44 +0000 (12:06 -0600)]
1  2 
Documentation/kernel-parameters.txt
block/scsi_ioctl.c
drivers/scsi/BusLogic.c
drivers/scsi/aic94xx/aic94xx_init.c
drivers/scsi/aic94xx/aic94xx_scb.c
drivers/scsi/qla2xxx/qla_os.c
drivers/scsi/scsi_lib.c
drivers/scsi/scsi_scan.c
drivers/scsi/st.c

Simple merge
Simple merge
Simple merge
Simple merge
@@@ -497,8 -466,25 +568,9 @@@ static void escb_tasklet_complete(struc
                asd_turn_led(asd_ha, phy_id, 0);
                /* the device is gone */
                sas_phy_disconnected(sas_phy);
+               asd_deform_port(asd_ha, phy);
                sas_ha->notify_port_event(sas_phy, PORTE_TIMER_EVENT);
                break;
 -      case REQ_TASK_ABORT:
 -              ASD_DPRINTK("%s: phy%d: REQ_TASK_ABORT\n", __FUNCTION__,
 -                          phy_id);
 -              break;
 -      case REQ_DEVICE_RESET:
 -              ASD_DPRINTK("%s: phy%d: REQ_DEVICE_RESET\n", __FUNCTION__,
 -                          phy_id);
 -              break;
 -      case SIGNAL_NCQ_ERROR:
 -              ASD_DPRINTK("%s: phy%d: SIGNAL_NCQ_ERROR\n", __FUNCTION__,
 -                          phy_id);
 -              break;
 -      case CLEAR_NCQ_ERROR:
 -              ASD_DPRINTK("%s: phy%d: CLEAR_NCQ_ERROR\n", __FUNCTION__,
 -                          phy_id);
 -              break;
        default:
                ASD_DPRINTK("%s: phy%d: unknown event:0x%x\n", __FUNCTION__,
                            phy_id, sb_opcode);
Simple merge
@@@ -1087,39 -1081,11 +1088,39 @@@ static void scsi_blk_pc_done(struct scs
        scsi_io_completion(cmd, cmd->request_bufflen);
  }
  
 -static void scsi_setup_blk_pc_cmnd(struct scsi_cmnd *cmd)
 +static int scsi_setup_blk_pc_cmnd(struct scsi_device *sdev, struct request *req)
  {
 -      struct request *req = cmd->request;
 +      struct scsi_cmnd *cmd;
 +
 +      cmd = scsi_get_cmd_from_req(sdev, req);
 +      if (unlikely(!cmd))
 +              return BLKPREP_DEFER;
 +
 +      /*
 +       * BLOCK_PC requests may transfer data, in which case they must
 +       * a bio attached to them.  Or they might contain a SCSI command
 +       * that does not transfer data, in which case they may optionally
 +       * submit a request without an attached bio.
 +       */
 +      if (req->bio) {
 +              int ret;
 +
 +              BUG_ON(!req->nr_phys_segments);
 +
 +              ret = scsi_init_io(cmd);
 +              if (unlikely(ret))
 +                      return ret;
 +      } else {
 +              BUG_ON(req->data_len);
 +              BUG_ON(req->data);
 +
 +              cmd->request_bufflen = 0;
 +              cmd->request_buffer = NULL;
 +              cmd->use_sg = 0;
 +              req->buffer = NULL;
 +      }
  
-       BUG_ON(sizeof(req->cmd) > sizeof(cmd->cmnd));
+       BUILD_BUG_ON(sizeof(req->cmd) > sizeof(cmd->cmnd));
        memcpy(cmd->cmnd, req->cmd, sizeof(cmd->cmnd));
        cmd->cmd_len = req->cmd_len;
        if (!req->data_len)
Simple merge
Simple merge