Hello Warner,

 This break every kernel build that don't have nvme(4).

On Thu, 21 Jul 2016 03:11:35 +0000 (UTC)
Warner Losh <i...@freebsd.org> wrote:

> Author: imp
> Date: Thu Jul 21 03:11:35 2016
> New Revision: 303123
> URL: https://svnweb.freebsd.org/changeset/base/303123
> 
> Log:
>   Fix mismerge and include the nvme support.
>   Also, print out the name of any CCB's functions that's not supported.
>   
>   MFC after: 1 week
> 
> Modified:
>   head/sys/cam/cam_xpt.c
> 
> Modified: head/sys/cam/cam_xpt.c
> ==============================================================================
> --- head/sys/cam/cam_xpt.c    Thu Jul 21 00:53:14 2016        (r303122)
> +++ head/sys/cam/cam_xpt.c    Thu Jul 21 03:11:35 2016        (r303123)
> @@ -1033,6 +1033,8 @@ xpt_announce_periph(struct cam_periph *p
>       else if (path->device->protocol == PROTO_SEMB)
>               semb_print_ident(
>                   (struct sep_identify_data *)&path->device->ident_data);
> +     else if (path->device->protocol == PROTO_NVME)
> +             nvme_print_ident(path->device->nvme_cdata, 
> path->device->nvme_data);
>       else
>               printf("Unknown protocol device\n");
>       if (path->device->serial_num_len > 0) {
> @@ -1086,6 +1088,8 @@ xpt_denounce_periph(struct cam_periph *p
>       else if (path->device->protocol == PROTO_SEMB)
>               semb_print_ident_short(
>                   (struct sep_identify_data *)&path->device->ident_data);
> +     else if (path->device->protocol == PROTO_NVME)
> +             nvme_print_ident(path->device->nvme_cdata, 
> path->device->nvme_data);
>       else
>               printf("Unknown protocol device");
>       if (path->device->serial_num_len > 0)
> @@ -2516,6 +2520,10 @@ xpt_action_default(union ccb *start_ccb)
>               if (start_ccb->ccb_h.func_code == XPT_ATA_IO)
>                       start_ccb->ataio.resid = 0;
>               /* FALLTHROUGH */
> +     case XPT_NVME_IO:
> +             if (start_ccb->ccb_h.func_code == XPT_NVME_IO)
> +                     start_ccb->nvmeio.resid = 0;
> +             /* FALLTHROUGH */
>       case XPT_RESET_DEV:
>       case XPT_ENG_EXEC:
>       case XPT_SMP_IO:
> @@ -2655,6 +2663,8 @@ call_sim:
>                       cgd->inq_data = dev->inq_data;
>                       cgd->ident_data = dev->ident_data;
>                       cgd->inq_flags = dev->inq_flags;
> +                     cgd->nvme_data = dev->nvme_data;
> +                     cgd->nvme_cdata = dev->nvme_cdata;
>                       cgd->ccb_h.status = CAM_REQ_CMP;
>                       cgd->serial_num_len = dev->serial_num_len;
>                       if ((dev->serial_num_len > 0)
> @@ -3011,8 +3021,10 @@ call_sim:
>       case XPT_TERM_IO:
>       case XPT_ENG_INQ:
>               /* XXX Implement */
> -             printf("%s: CCB type %#x not supported\n", __func__,
> -                    start_ccb->ccb_h.func_code);
> +             xpt_print_path(start_ccb->ccb_h.path);
> +             printf("%s: CCB type %#x %s not supported\n", __func__,
> +                 start_ccb->ccb_h.func_code,
> +                 xpt_action_name(start_ccb->ccb_h.func_code));
>               start_ccb->ccb_h.status = CAM_PROVIDE_FAIL;
>               if (start_ccb->ccb_h.func_code & XPT_FC_DEV_QUEUED) {
>                       xpt_done(start_ccb);
> @@ -3315,6 +3327,13 @@ xpt_run_devq(struct cam_devq *devq)
>                            ata_cmd_string(&work_ccb->ataio.cmd,
>                                           cdb_str, sizeof(cdb_str))));
>                       break;
> +             case XPT_NVME_IO:
> +                     CAM_DEBUG(work_ccb->ccb_h.path,
> +                         CAM_DEBUG_CDB,("%s. NCB: %s\n",
> +                          nvme_op_string(&work_ccb->nvmeio.cmd),
> +                          nvme_cmd_string(&work_ccb->nvmeio.cmd,
> +                                         cdb_str, sizeof(cdb_str))));
> +                     break;
>               default:
>                       break;
>               }
> @@ -3904,6 +3923,9 @@ xpt_bus_register(struct cam_sim *sim, de
>               case XPORT_SATA:
>                       new_bus->xport = ata_get_xport();
>                       break;
> +             case XPORT_NVME:
> +                     new_bus->xport = nvme_get_xport();
> +                     break;
>               default:
>                       new_bus->xport = &xport_default;
>                       break;


-- 
Emmanuel Vadot
_______________________________________________
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