Home
last modified time | relevance | path

Searched defs:ndlp (Results 26 - 35 of 35) sorted by relevance

12

/kernel/linux/linux-6.6/drivers/scsi/lpfc/
H A Dlpfc_attr.c342 struct lpfc_nodelist *ndlp; in lpfc_nvme_info_show() local
3768 struct lpfc_nodelist *ndlp; in lpfc_update_rport_devloss_tmo() local
3977 struct lpfc_nodelist *ndlp; lpfc_tgt_queue_depth_set() local
5239 struct lpfc_nodelist *ndlp, *next_ndlp; lpfc_max_scsicmpl_time_set() local
6870 struct lpfc_nodelist *ndlp; lpfc_get_node_by_target() local
6892 struct lpfc_nodelist *ndlp = lpfc_get_node_by_target(starget); lpfc_get_starget_port_id() local
6906 struct lpfc_nodelist *ndlp = lpfc_get_node_by_target(starget); lpfc_get_starget_node_name() local
6921 struct lpfc_nodelist *ndlp = lpfc_get_node_by_target(starget); lpfc_get_starget_port_name() local
6940 struct lpfc_nodelist *ndlp = rdata->pnode; lpfc_set_rport_loss_tmo() local
[all...]
H A Dlpfc_scsi.c437 struct lpfc_nodelist *ndlp; in lpfc_sli4_io_xri_aborted() local
560 lpfc_get_scsi_buf_s3(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, in lpfc_get_scsi_buf_s3() argument
601 lpfc_get_scsi_buf_s4(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, struct scsi_cmnd *cmnd) lpfc_get_scsi_buf_s4() argument
696 lpfc_get_scsi_buf(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, struct scsi_cmnd *cmnd) lpfc_get_scsi_buf() argument
965 struct lpfc_nodelist *ndlp; lpfc_bg_err_inject() local
4009 struct lpfc_nodelist *ndlp; lpfc_fcp_io_cmd_wqe_cmpl() local
4841 struct lpfc_nodelist *ndlp = rdata->pnode; lpfc_scsi_prep_task_mgmt_cmd_s3() local
4901 struct lpfc_nodelist *ndlp = rdata->pnode; lpfc_scsi_prep_task_mgmt_cmd_s4() local
5218 struct lpfc_nodelist *ndlp; lpfc_queuecommand() local
[all...]
H A Dlpfc_sli.h144 struct lpfc_nodelist *ndlp; member
416 struct lpfc_nodelist *ndlp; member
H A Dlpfc_els.c163 lpfc_prep_els_iocb(struct lpfc_vport *vport, u8 expect_rsp, u16 cmd_size, u8 retry, struct lpfc_nodelist *ndlp, u32 did, u32 elscmd) lpfc_prep_els_iocb() argument
348 struct lpfc_nodelist *ndlp; lpfc_issue_fabric_reglogin() local
439 struct lpfc_nodelist *ndlp; lpfc_issue_reg_vfi() local
624 lpfc_cmpl_els_flogi_fabric(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, struct serv_parm *sp, uint32_t ulp_word4) lpfc_cmpl_els_flogi_fabric() argument
817 lpfc_cmpl_els_flogi_nport(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, struct serv_parm *sp) lpfc_cmpl_els_flogi_nport() argument
948 struct lpfc_nodelist *ndlp = cmdiocb->ndlp; lpfc_cmpl_els_flogi() local
1289 lpfc_issue_els_flogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, uint8_t retry) lpfc_issue_els_flogi() argument
1476 struct lpfc_nodelist *ndlp; lpfc_els_abort_flogi() local
1534 struct lpfc_nodelist *ndlp; lpfc_initial_flogi() local
1587 struct lpfc_nodelist *ndlp; lpfc_initial_fdisc() local
1680 lpfc_plogi_confirm_nport(struct lpfc_hba *phba, uint32_t *prsp, struct lpfc_nodelist *ndlp) lpfc_plogi_confirm_nport() argument
1941 struct lpfc_nodelist *ndlp = cmdiocb->ndlp; lpfc_cmpl_els_rrq() local
2009 struct lpfc_nodelist *ndlp, *free_ndlp; lpfc_cmpl_els_plogi() local
2197 struct lpfc_nodelist *ndlp; lpfc_issue_els_plogi() local
2319 struct lpfc_nodelist *ndlp; lpfc_cmpl_els_prli() local
2467 lpfc_issue_els_prli(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, uint8_t retry) lpfc_issue_els_prli() argument
2791 struct lpfc_nodelist *ndlp; lpfc_cmpl_els_adisc() local
2906 lpfc_issue_els_adisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, uint8_t retry) lpfc_issue_els_adisc() argument
2981 struct lpfc_nodelist *ndlp = cmdiocb->ndlp; lpfc_cmpl_els_logo() local
3142 lpfc_issue_els_logo(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, uint8_t retry) lpfc_issue_els_logo() argument
3367 struct lpfc_nodelist *ndlp = cmdiocb->ndlp; lpfc_cmpl_els_disc_cmd() local
3497 struct lpfc_nodelist *ndlp; lpfc_issue_els_scr() local
3584 struct lpfc_nodelist *ndlp; lpfc_issue_els_rscn() local
3688 struct lpfc_nodelist *ndlp; lpfc_issue_els_farpr() local
3780 struct lpfc_nodelist *ndlp; lpfc_issue_els_rdf() local
3859 lpfc_els_rcv_rdf(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb, struct lpfc_nodelist *ndlp) lpfc_els_rcv_rdf() argument
3991 struct lpfc_nodelist *ndlp; lpfc_cmpl_els_edc() local
4278 struct lpfc_nodelist *ndlp; lpfc_issue_els_edc() local
4429 struct lpfc_nodelist *ndlp = from_timer(ndlp, t, nlp_delayfunc); lpfc_els_retry_delay() local
4464 lpfc_els_retry_delay_handler(struct lpfc_nodelist *ndlp) lpfc_els_retry_delay_handler() argument
4609 struct lpfc_nodelist *ndlp = cmdiocb->ndlp; lpfc_els_retry() local
5218 struct lpfc_nodelist *ndlp = cmdiocb->ndlp; lpfc_cmpl_els_logo_acc() local
5281 struct lpfc_nodelist *ndlp = pmb->ctx_ndlp; lpfc_mbx_cmpl_dflt_rpi() local
5327 struct lpfc_nodelist *ndlp = cmdiocb->ndlp; lpfc_cmpl_els_rsp() local
5504 lpfc_els_rsp_acc(struct lpfc_vport *vport, uint32_t flag, struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp, LPFC_MBOXQ_t *mbox) lpfc_els_rsp_acc() argument
5778 lpfc_els_rsp_reject(struct lpfc_vport *vport, uint32_t rejectError, struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp, LPFC_MBOXQ_t *mbox) lpfc_els_rsp_reject() argument
5876 lpfc_issue_els_edc_rsp(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb, struct lpfc_nodelist *ndlp) lpfc_issue_els_edc_rsp() argument
5982 lpfc_els_rsp_adisc_acc(struct lpfc_vport *vport, struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp) lpfc_els_rsp_adisc_acc() argument
6079 lpfc_els_rsp_prli_acc(struct lpfc_vport *vport, struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp) lpfc_els_rsp_prli_acc() argument
6272 lpfc_els_rsp_rnid_acc(struct lpfc_vport *vport, uint8_t format, struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp) lpfc_els_rsp_rnid_acc() argument
6374 lpfc_els_clear_rrq(struct lpfc_vport *vport, struct lpfc_iocbq *iocb, struct lpfc_nodelist *ndlp) lpfc_els_clear_rrq() argument
6425 lpfc_els_rsp_echo_acc(struct lpfc_vport *vport, uint8_t *data, struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp) lpfc_els_rsp_echo_acc() argument
6522 struct lpfc_nodelist *ndlp, *next_ndlp; lpfc_els_disc_adisc() local
6594 struct lpfc_nodelist *ndlp, *next_ndlp; lpfc_els_disc_plogi() local
7035 lpfc_rdp_res_attach_port_names(struct fc_rdp_port_name_desc *desc, struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) lpfc_rdp_res_attach_port_names() argument
7062 struct lpfc_nodelist *ndlp = rdp_context->ndlp; lpfc_els_rdp_cmpl() local
7406 lpfc_els_rcv_rdp(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb, struct lpfc_nodelist *ndlp) lpfc_els_rcv_rdp() argument
7499 struct lpfc_nodelist *ndlp; lpfc_els_lcb_rsp() local
7716 lpfc_els_rcv_lcb(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb, struct lpfc_nodelist *ndlp) lpfc_els_rcv_lcb() argument
7924 struct lpfc_nodelist *ndlp = NULL, *n; lpfc_rscn_recovery_check() local
8021 lpfc_els_rcv_rscn(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb, struct lpfc_nodelist *ndlp) lpfc_els_rcv_rscn() argument
8239 struct lpfc_nodelist *ndlp; lpfc_els_handle_rscn() local
8330 lpfc_els_rcv_flogi(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb, struct lpfc_nodelist *ndlp) lpfc_els_rcv_flogi() argument
8503 lpfc_els_rcv_rnid(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb, struct lpfc_nodelist *ndlp) lpfc_els_rcv_rnid() argument
8547 lpfc_els_rcv_echo(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb, struct lpfc_nodelist *ndlp) lpfc_els_rcv_echo() argument
8575 lpfc_els_rcv_lirr(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb, struct lpfc_nodelist *ndlp) lpfc_els_rcv_lirr() argument
8606 lpfc_els_rcv_rrq(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb, struct lpfc_nodelist *ndlp) lpfc_els_rcv_rrq() argument
8643 struct lpfc_nodelist *ndlp; lpfc_els_rsp_rls_acc() local
8741 lpfc_els_rcv_rls(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb, struct lpfc_nodelist *ndlp) lpfc_els_rcv_rls() argument
8808 lpfc_els_rcv_rtv(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb, struct lpfc_nodelist *ndlp) lpfc_els_rcv_rtv() argument
8910 lpfc_issue_els_rrq(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, uint32_t did, struct lpfc_node_rrq *rrq) lpfc_issue_els_rrq() argument
8981 struct lpfc_nodelist *ndlp = lpfc_findnode_did(rrq->vport, lpfc_send_rrq() local
9013 lpfc_els_rsp_rpl_acc(struct lpfc_vport *vport, uint16_t cmdsize, struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp) lpfc_els_rsp_rpl_acc() argument
9102 lpfc_els_rcv_rpl(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb, struct lpfc_nodelist *ndlp) lpfc_els_rcv_rpl() argument
9168 lpfc_els_rcv_farp(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb, struct lpfc_nodelist *ndlp) lpfc_els_rcv_farp() argument
9239 lpfc_els_rcv_farpr(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb, struct lpfc_nodelist *ndlp) lpfc_els_rcv_farpr() argument
9320 lpfc_els_rcv_edc(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb, struct lpfc_nodelist *ndlp) lpfc_els_rcv_edc() argument
9551 struct lpfc_nodelist *ndlp; lpfc_els_timeout_handler() local
9792 struct lpfc_nodelist *ndlp; lpfc_send_els_failure_event() local
9853 lpfc_send_els_event(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, uint32_t *payload) lpfc_send_els_event() argument
10338 struct lpfc_nodelist *ndlp; lpfc_els_unsol_buffer() local
10912 struct lpfc_nodelist *ndlp; lpfc_start_fdmi() local
10948 struct lpfc_nodelist *ndlp; lpfc_do_scr_ns_plogi() local
11017 struct lpfc_nodelist *ndlp = pmb->ctx_ndlp; lpfc_cmpl_reg_new_vport() local
11134 lpfc_register_new_vport(struct lpfc_hba *phba, struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) lpfc_register_new_vport() argument
11188 struct lpfc_nodelist *ndlp; lpfc_cancel_all_vport_retry_delay_timer() local
11221 struct lpfc_nodelist *ndlp; lpfc_retry_pport_discovery() local
11290 struct lpfc_nodelist *ndlp = cmdiocb->ndlp; lpfc_cmpl_els_fdisc() local
11440 lpfc_issue_els_fdisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, uint8_t retry) lpfc_issue_els_fdisc() argument
11550 struct lpfc_nodelist *ndlp; lpfc_cmpl_els_npiv_logo() local
11620 lpfc_issue_els_npiv_logo(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) lpfc_issue_els_npiv_logo() argument
11965 lpfc_fabric_abort_nport(struct lpfc_nodelist *ndlp) lpfc_fabric_abort_nport() argument
12028 struct lpfc_nodelist *ndlp = NULL; lpfc_sli4_vport_delete_els_xri_aborted() local
12074 struct lpfc_nodelist *ndlp; lpfc_sli4_els_xri_aborted() local
12131 lpfc_sli_abts_recover_port(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) lpfc_sli_abts_recover_port() argument
12216 struct lpfc_nodelist *ndlp = cmdiocb->ndlp; lpfc_cmpl_els_qfpa() local
12298 struct lpfc_nodelist *ndlp; lpfc_issue_els_qfpa() local
12340 struct lpfc_nodelist *ndlp; lpfc_vmid_uvem() local
12430 struct lpfc_nodelist *ndlp = icmdiocb->ndlp; lpfc_cmpl_els_uvem() local
[all...]
H A Dlpfc_init.c3039 struct lpfc_nodelist *ndlp, *next_ndlp; in lpfc_cleanup() local
3402 struct lpfc_nodelist *ndlp, *next_ndlp; lpfc_sli4_node_prep() local
3801 struct lpfc_nodelist *ndlp, *next_ndlp; lpfc_offline_prep() local
6660 struct lpfc_nodelist *ndlp; lpfc_sli4_perform_vport_cvl() local
6733 struct lpfc_nodelist *ndlp; lpfc_sli4_async_fip_evt() local
[all...]
H A Dlpfc_sli4.h1009 struct lpfc_nodelist *ndlp; /* ndlp associated with IO */ member
1035 struct lpfc_nodelist *ndlp; member
1052 struct lpfc_nodelist *ndlp; member
H A Dlpfc_sli.c986 struct lpfc_nodelist *ndlp = NULL; in lpfc_clr_rrq_active() local
1097 lpfc_cleanup_vports_rrqs(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) in lpfc_cleanup_vports_rrqs() argument
1140 lpfc_test_rrq_active(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, uint16_t xritag) lpfc_test_rrq_active() argument
1169 lpfc_set_rrq_active(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, uint16_t xritag, uint16_t rxid, uint16_t send_rrq) lpfc_set_rrq_active() argument
1251 struct lpfc_nodelist *ndlp; __lpfc_sli_get_els_sglq() local
2841 __lpfc_sli_rpi_release(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) __lpfc_sli_rpi_release() argument
2856 lpfc_sli_rpi_release(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) lpfc_sli_rpi_release() argument
2876 struct lpfc_nodelist *ndlp; lpfc_sli_def_mbox_cmpl() local
2988 struct lpfc_nodelist *ndlp; lpfc_sli4_unreg_rpi_cmpl_clr() local
3212 struct lpfc_nodelist *ndlp; lpfc_nvme_unsol_ls_handler() local
11366 lpfc_sli_post_recovery_event(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp) lpfc_sli_post_recovery_event() argument
11407 struct lpfc_nodelist *ndlp = NULL; lpfc_sli_abts_err_handler() local
11450 lpfc_sli4_abts_err_handler(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, struct sli4_wcqe_xri_aborted *axri) lpfc_sli4_abts_err_handler() argument
12332 struct lpfc_nodelist *ndlp = cmdiocb->ndlp; lpfc_ignore_els_cmpl() local
12399 struct lpfc_nodelist *ndlp = NULL; lpfc_sli_issue_abort_iotag() local
12836 struct lpfc_nodelist *ndlp = NULL; lpfc_sli_abort_taskmgmt() local
13632 struct lpfc_nodelist *ndlp; lpfc_sli_sp_intr_handler() local
14288 struct lpfc_nodelist *ndlp; lpfc_sli4_sp_handle_mbox_event() local
18910 struct lpfc_nodelist *ndlp; lpfc_sli4_seq_abort_rsp() local
19818 lpfc_sli4_resume_rpi(struct lpfc_nodelist *ndlp, void (*cmpl)(struct lpfc_hba *, LPFC_MBOXQ_t *), void *arg) lpfc_sli4_resume_rpi() argument
21000 struct lpfc_nodelist *ndlp; lpfc_cleanup_pending_mbox() local
21937 lpfc_get_io_buf_from_private_pool(struct lpfc_hba *phba, struct lpfc_sli4_hdw_queue *qp, struct lpfc_pvt_pool *pvt_pool, struct lpfc_nodelist *ndlp) lpfc_get_io_buf_from_private_pool() argument
22021 lpfc_get_io_buf_from_multixri_pools(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, int hwqid, int expedite) lpfc_get_io_buf_from_multixri_pools() argument
22075 lpfc_io_buf(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, int idx) lpfc_io_buf() argument
22117 lpfc_get_io_buf(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, u32 hwqid, int expedite) lpfc_get_io_buf() argument
22578 struct lpfc_nodelist *ndlp = NULL; lpfc_sli_prep_wqe() local
[all...]
/kernel/linux/linux-5.10/drivers/scsi/lpfc/
H A Dlpfc_init.c2840 struct lpfc_nodelist *ndlp, *next_ndlp; in lpfc_cleanup() local
3080 struct lpfc_nodelist *ndlp, *next_ndlp; lpfc_sli4_node_prep() local
3484 struct lpfc_nodelist *ndlp, *next_ndlp; lpfc_offline_prep() local
5591 struct lpfc_nodelist *ndlp; lpfc_sli4_perform_vport_cvl() local
5669 struct lpfc_nodelist *ndlp; lpfc_sli4_async_fip_evt() local
[all...]
H A Dlpfc_sli.c861 struct lpfc_nodelist *ndlp = NULL; in lpfc_clr_rrq_active() local
978 lpfc_cleanup_vports_rrqs(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) lpfc_cleanup_vports_rrqs() argument
1016 lpfc_test_rrq_active(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, uint16_t xritag) lpfc_test_rrq_active() argument
1045 lpfc_set_rrq_active(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, uint16_t xritag, uint16_t rxid, uint16_t send_rrq) lpfc_set_rrq_active() argument
1134 struct lpfc_nodelist *ndlp; __lpfc_sli_get_els_sglq() local
2446 __lpfc_sli_rpi_release(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) __lpfc_sli_rpi_release() argument
2475 struct lpfc_nodelist *ndlp; lpfc_sli_def_mbox_cmpl() local
2579 struct lpfc_nodelist *ndlp; lpfc_sli4_unreg_rpi_cmpl_clr() local
2803 struct lpfc_nodelist *ndlp; lpfc_nvme_unsol_ls_handler() local
9534 struct lpfc_nodelist *ndlp; lpfc_sli4_iocb2wqe() local
10376 lpfc_sli_post_recovery_event(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp) lpfc_sli_post_recovery_event() argument
10417 struct lpfc_nodelist *ndlp = NULL; lpfc_sli_abts_err_handler() local
10460 lpfc_sli4_abts_err_handler(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, struct sli4_wcqe_xri_aborted *axri) lpfc_sli4_abts_err_handler() argument
11389 struct lpfc_nodelist *ndlp; lpfc_sli_abort_iotag_issue() local
11844 struct lpfc_nodelist *ndlp; lpfc_sli_abort_taskmgmt() local
12623 struct lpfc_nodelist *ndlp; lpfc_sli_sp_intr_handler() local
13374 struct lpfc_nodelist *ndlp; lpfc_sli4_sp_handle_mbox_event() local
17854 struct lpfc_nodelist *ndlp; lpfc_sli4_seq_abort_rsp_cmpl() local
17906 struct lpfc_nodelist *ndlp; lpfc_sli4_seq_abort_rsp() local
18807 lpfc_sli4_resume_rpi(struct lpfc_nodelist *ndlp, void (*cmpl)(struct lpfc_hba *, LPFC_MBOXQ_t *), void *arg) lpfc_sli4_resume_rpi() argument
19907 struct lpfc_nodelist *ndlp; lpfc_cleanup_pending_mbox() local
20781 lpfc_get_io_buf_from_private_pool(struct lpfc_hba *phba, struct lpfc_sli4_hdw_queue *qp, struct lpfc_pvt_pool *pvt_pool, struct lpfc_nodelist *ndlp) lpfc_get_io_buf_from_private_pool() argument
20865 lpfc_get_io_buf_from_multixri_pools(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, int hwqid, int expedite) lpfc_get_io_buf_from_multixri_pools() argument
20901 lpfc_io_buf(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, int idx) lpfc_io_buf() argument
20943 lpfc_get_io_buf(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, u32 hwqid, int expedite) lpfc_get_io_buf() argument
[all...]
H A Dlpfc_sli4.h993 struct lpfc_nodelist *ndlp; /* ndlp associated with IO */ member
1019 struct lpfc_nodelist *ndlp; member
1036 struct lpfc_nodelist *ndlp; member

Completed in 48 milliseconds

12