Author: dim
Date: Wed May  6 08:24:47 2020
New Revision: 360686
URL: https://svnweb.freebsd.org/changeset/base/360686

Log:
  Revert r360682, as it does not compile on stable/11 (will commit a
  minimal indentation fix instead):
  
  Un-MFC r333465 (by lwhsu):
  
  Fix build for platforms using GCC:
  
  - Remove unused or dead store variable
  - Remove unused function ctl_copyin_alloc
  - Add missing curly brackets, this seems a regression in r287720
  
  Reviewed by:  jhibbits
  Differential Revision:        https://reviews.freebsd.org/D15383

Modified:
  stable/11/sys/cam/ctl/ctl.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/cam/ctl/ctl.c
==============================================================================
--- stable/11/sys/cam/ctl/ctl.c Wed May  6 07:48:37 2020        (r360685)
+++ stable/11/sys/cam/ctl/ctl.c Wed May  6 08:24:47 2020        (r360686)
@@ -2440,6 +2440,25 @@ ctl_ioctl_fill_ooa(struct ctl_lun *lun, uint32_t *cur_
        mtx_unlock(&lun->lun_lock);
 }
 
+static void *
+ctl_copyin_alloc(void *user_addr, unsigned int len, char *error_str,
+                size_t error_str_len)
+{
+       void *kptr;
+
+       kptr = malloc(len, M_CTL, M_WAITOK | M_ZERO);
+
+       if (copyin(user_addr, kptr, len) != 0) {
+               snprintf(error_str, error_str_len, "Error copying %d bytes "
+                        "from user address %p to kernel address %p", len,
+                        user_addr, kptr);
+               free(kptr, M_CTL);
+               return (NULL);
+       }
+
+       return (kptr);
+}
+
 static void
 ctl_free_args(int num_args, struct ctl_be_arg *args)
 {
@@ -5033,9 +5052,11 @@ ctl_lun_secondary(struct ctl_be_lun *be_lun)
 int
 ctl_invalidate_lun(struct ctl_be_lun *be_lun)
 {
+       struct ctl_softc *softc;
        struct ctl_lun *lun;
 
        lun = (struct ctl_lun *)be_lun->ctl_lun;
+       softc = lun->ctl_softc;
 
        mtx_lock(&lun->lun_lock);
 
@@ -6231,7 +6252,7 @@ ctl_mode_select(struct ctl_scsiio *ctsio)
 {
        struct ctl_lun *lun = CTL_LUN(ctsio);
        union ctl_modepage_info *modepage_info;
-       int bd_len, i, header_size, param_len, rtd;
+       int bd_len, i, header_size, param_len, pf, rtd, sp;
        uint32_t initidx;
 
        initidx = ctl_get_initindex(&ctsio->io_hdr.nexus);
@@ -6241,7 +6262,9 @@ ctl_mode_select(struct ctl_scsiio *ctsio)
 
                cdb = (struct scsi_mode_select_6 *)ctsio->cdb;
 
+               pf = (cdb->byte2 & SMS_PF) ? 1 : 0;
                rtd = (cdb->byte2 & SMS_RTD) ? 1 : 0;
+               sp = (cdb->byte2 & SMS_SP) ? 1 : 0;
                param_len = cdb->length;
                header_size = sizeof(struct scsi_mode_header_6);
                break;
@@ -6251,7 +6274,9 @@ ctl_mode_select(struct ctl_scsiio *ctsio)
 
                cdb = (struct scsi_mode_select_10 *)ctsio->cdb;
 
+               pf = (cdb->byte2 & SMS_PF) ? 1 : 0;
                rtd = (cdb->byte2 & SMS_RTD) ? 1 : 0;
+               sp = (cdb->byte2 & SMS_SP) ? 1 : 0;
                param_len = scsi_2btoul(cdb->length);
                header_size = sizeof(struct scsi_mode_header_10);
                break;
@@ -6374,12 +6399,13 @@ int
 ctl_mode_sense(struct ctl_scsiio *ctsio)
 {
        struct ctl_lun *lun = CTL_LUN(ctsio);
-       int pc, page_code, dbd, subpage;
+       int pc, page_code, dbd, llba, subpage;
        int alloc_len, page_len, header_len, total_len;
        struct scsi_mode_block_descr *block_desc;
        struct ctl_page_index *page_index;
 
        dbd = 0;
+       llba = 0;
        block_desc = NULL;
 
        CTL_DEBUG_PRINT(("ctl_mode_sense\n"));
@@ -6413,6 +6439,8 @@ ctl_mode_sense(struct ctl_scsiio *ctsio)
                        dbd = 1;
                else
                        header_len += sizeof(struct scsi_mode_block_descr);
+               if (cdb->byte2 & SMS10_LLBAA)
+                       llba = 1;
                pc = (cdb->page & SMS_PAGE_CTRL_MASK) >> 6;
                page_code = cdb->page & SMS_PAGE_CODE;
                subpage = cdb->subpage;
@@ -8563,11 +8591,10 @@ ctl_hndl_per_res_out_on_other_sc(union ctl_io *io)
                if (lun->pr_res_type != SPR_TYPE_EX_AC &&
                    lun->pr_res_type != SPR_TYPE_WR_EX &&
                    (lun->MODE_CTRL.queue_flags & SCP_NUAR) == 0) {
-                       for (i = softc->init_min; i < softc->init_max; i++) {
+                       for (i = softc->init_min; i < softc->init_max; i++)
                                if (i == residx || ctl_get_prkey(lun, i) == 0)
                                        continue;
                                ctl_est_ua(lun, i, CTL_UA_RES_RELEASE);
-                       }
                }
 
                lun->flags &= ~CTL_LUN_PR_RESERVED;
@@ -10375,6 +10402,7 @@ ctl_get_event_status(struct ctl_scsiio *ctsio)
        struct scsi_get_event_status_header *hdr;
        struct scsi_get_event_status *cdb;
        uint32_t alloc_len, data_len;
+       int notif_class;
 
        cdb = (struct scsi_get_event_status *)ctsio->cdb;
        if ((cdb->byte2 & SGESN_POLLED) == 0) {
@@ -10383,6 +10411,7 @@ ctl_get_event_status(struct ctl_scsiio *ctsio)
                ctl_done((union ctl_io *)ctsio);
                return (CTL_RETVAL_COMPLETE);
        }
+       notif_class = cdb->notif_class;
        alloc_len = scsi_2btoul(cdb->length);
 
        data_len = sizeof(struct scsi_get_event_status_header);
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to