@@ -545,13 +545,15 @@ static int kvaser_usb_hydra_send_simple_cmd(struct kvaser_usb *dev,
545545 u8 cmd_no , int channel )
546546{
547547 struct kvaser_cmd * cmd ;
548+ size_t cmd_len ;
548549 int err ;
549550
550551 cmd = kzalloc (sizeof (* cmd ), GFP_KERNEL );
551552 if (!cmd )
552553 return - ENOMEM ;
553554
554555 cmd -> header .cmd_no = cmd_no ;
556+ cmd_len = kvaser_usb_hydra_cmd_size (cmd );
555557 if (channel < 0 ) {
556558 kvaser_usb_hydra_set_cmd_dest_he
557559 (cmd , KVASER_USB_HYDRA_HE_ADDRESS_ILLEGAL );
@@ -568,7 +570,7 @@ static int kvaser_usb_hydra_send_simple_cmd(struct kvaser_usb *dev,
568570 kvaser_usb_hydra_set_cmd_transid
569571 (cmd , kvaser_usb_hydra_get_next_transid (dev ));
570572
571- err = kvaser_usb_send_cmd (dev , cmd , kvaser_usb_hydra_cmd_size ( cmd ) );
573+ err = kvaser_usb_send_cmd (dev , cmd , cmd_len );
572574 if (err )
573575 goto end ;
574576
@@ -584,21 +586,22 @@ kvaser_usb_hydra_send_simple_cmd_async(struct kvaser_usb_net_priv *priv,
584586{
585587 struct kvaser_cmd * cmd ;
586588 struct kvaser_usb * dev = priv -> dev ;
589+ size_t cmd_len ;
587590 int err ;
588591
589592 cmd = kzalloc (sizeof (* cmd ), GFP_ATOMIC );
590593 if (!cmd )
591594 return - ENOMEM ;
592595
593596 cmd -> header .cmd_no = cmd_no ;
597+ cmd_len = kvaser_usb_hydra_cmd_size (cmd );
594598
595599 kvaser_usb_hydra_set_cmd_dest_he
596600 (cmd , dev -> card_data .hydra .channel_to_he [priv -> channel ]);
597601 kvaser_usb_hydra_set_cmd_transid
598602 (cmd , kvaser_usb_hydra_get_next_transid (dev ));
599603
600- err = kvaser_usb_send_cmd_async (priv , cmd ,
601- kvaser_usb_hydra_cmd_size (cmd ));
604+ err = kvaser_usb_send_cmd_async (priv , cmd , cmd_len );
602605 if (err )
603606 kfree (cmd );
604607
@@ -742,6 +745,7 @@ static int kvaser_usb_hydra_get_single_capability(struct kvaser_usb *dev,
742745{
743746 struct kvaser_usb_dev_card_data * card_data = & dev -> card_data ;
744747 struct kvaser_cmd * cmd ;
748+ size_t cmd_len ;
745749 u32 value = 0 ;
746750 u32 mask = 0 ;
747751 u16 cap_cmd_res ;
@@ -753,13 +757,14 @@ static int kvaser_usb_hydra_get_single_capability(struct kvaser_usb *dev,
753757 return - ENOMEM ;
754758
755759 cmd -> header .cmd_no = CMD_GET_CAPABILITIES_REQ ;
760+ cmd_len = kvaser_usb_hydra_cmd_size (cmd );
756761 cmd -> cap_req .cap_cmd = cpu_to_le16 (cap_cmd_req );
757762
758763 kvaser_usb_hydra_set_cmd_dest_he (cmd , card_data -> hydra .sysdbg_he );
759764 kvaser_usb_hydra_set_cmd_transid
760765 (cmd , kvaser_usb_hydra_get_next_transid (dev ));
761766
762- err = kvaser_usb_send_cmd (dev , cmd , kvaser_usb_hydra_cmd_size ( cmd ) );
767+ err = kvaser_usb_send_cmd (dev , cmd , cmd_len );
763768 if (err )
764769 goto end ;
765770
@@ -1578,6 +1583,7 @@ static int kvaser_usb_hydra_get_busparams(struct kvaser_usb_net_priv *priv,
15781583 struct kvaser_usb * dev = priv -> dev ;
15791584 struct kvaser_usb_net_hydra_priv * hydra = priv -> sub_priv ;
15801585 struct kvaser_cmd * cmd ;
1586+ size_t cmd_len ;
15811587 int err ;
15821588
15831589 if (!hydra )
@@ -1588,6 +1594,7 @@ static int kvaser_usb_hydra_get_busparams(struct kvaser_usb_net_priv *priv,
15881594 return - ENOMEM ;
15891595
15901596 cmd -> header .cmd_no = CMD_GET_BUSPARAMS_REQ ;
1597+ cmd_len = kvaser_usb_hydra_cmd_size (cmd );
15911598 kvaser_usb_hydra_set_cmd_dest_he
15921599 (cmd , dev -> card_data .hydra .channel_to_he [priv -> channel ]);
15931600 kvaser_usb_hydra_set_cmd_transid
@@ -1597,7 +1604,7 @@ static int kvaser_usb_hydra_get_busparams(struct kvaser_usb_net_priv *priv,
15971604
15981605 reinit_completion (& priv -> get_busparams_comp );
15991606
1600- err = kvaser_usb_send_cmd (dev , cmd , kvaser_usb_hydra_cmd_size ( cmd ) );
1607+ err = kvaser_usb_send_cmd (dev , cmd , cmd_len );
16011608 if (err )
16021609 return err ;
16031610
@@ -1624,13 +1631,15 @@ static int kvaser_usb_hydra_set_bittiming(const struct net_device *netdev,
16241631 struct kvaser_cmd * cmd ;
16251632 struct kvaser_usb_net_priv * priv = netdev_priv (netdev );
16261633 struct kvaser_usb * dev = priv -> dev ;
1634+ size_t cmd_len ;
16271635 int err ;
16281636
16291637 cmd = kzalloc (sizeof (* cmd ), GFP_KERNEL );
16301638 if (!cmd )
16311639 return - ENOMEM ;
16321640
16331641 cmd -> header .cmd_no = CMD_SET_BUSPARAMS_REQ ;
1642+ cmd_len = kvaser_usb_hydra_cmd_size (cmd );
16341643 memcpy (& cmd -> set_busparams_req .busparams_nominal , busparams ,
16351644 sizeof (cmd -> set_busparams_req .busparams_nominal ));
16361645
@@ -1639,7 +1648,7 @@ static int kvaser_usb_hydra_set_bittiming(const struct net_device *netdev,
16391648 kvaser_usb_hydra_set_cmd_transid
16401649 (cmd , kvaser_usb_hydra_get_next_transid (dev ));
16411650
1642- err = kvaser_usb_send_cmd (dev , cmd , kvaser_usb_hydra_cmd_size ( cmd ) );
1651+ err = kvaser_usb_send_cmd (dev , cmd , cmd_len );
16431652
16441653 kfree (cmd );
16451654
@@ -1652,13 +1661,15 @@ static int kvaser_usb_hydra_set_data_bittiming(const struct net_device *netdev,
16521661 struct kvaser_cmd * cmd ;
16531662 struct kvaser_usb_net_priv * priv = netdev_priv (netdev );
16541663 struct kvaser_usb * dev = priv -> dev ;
1664+ size_t cmd_len ;
16551665 int err ;
16561666
16571667 cmd = kzalloc (sizeof (* cmd ), GFP_KERNEL );
16581668 if (!cmd )
16591669 return - ENOMEM ;
16601670
16611671 cmd -> header .cmd_no = CMD_SET_BUSPARAMS_FD_REQ ;
1672+ cmd_len = kvaser_usb_hydra_cmd_size (cmd );
16621673 memcpy (& cmd -> set_busparams_req .busparams_data , busparams ,
16631674 sizeof (cmd -> set_busparams_req .busparams_data ));
16641675
@@ -1676,7 +1687,7 @@ static int kvaser_usb_hydra_set_data_bittiming(const struct net_device *netdev,
16761687 kvaser_usb_hydra_set_cmd_transid
16771688 (cmd , kvaser_usb_hydra_get_next_transid (dev ));
16781689
1679- err = kvaser_usb_send_cmd (dev , cmd , kvaser_usb_hydra_cmd_size ( cmd ) );
1690+ err = kvaser_usb_send_cmd (dev , cmd , cmd_len );
16801691
16811692 kfree (cmd );
16821693
@@ -1804,6 +1815,7 @@ static int kvaser_usb_hydra_get_software_info(struct kvaser_usb *dev)
18041815static int kvaser_usb_hydra_get_software_details (struct kvaser_usb * dev )
18051816{
18061817 struct kvaser_cmd * cmd ;
1818+ size_t cmd_len ;
18071819 int err ;
18081820 u32 flags ;
18091821 struct kvaser_usb_dev_card_data * card_data = & dev -> card_data ;
@@ -1813,14 +1825,15 @@ static int kvaser_usb_hydra_get_software_details(struct kvaser_usb *dev)
18131825 return - ENOMEM ;
18141826
18151827 cmd -> header .cmd_no = CMD_GET_SOFTWARE_DETAILS_REQ ;
1828+ cmd_len = kvaser_usb_hydra_cmd_size (cmd );
18161829 cmd -> sw_detail_req .use_ext_cmd = 1 ;
18171830 kvaser_usb_hydra_set_cmd_dest_he
18181831 (cmd , KVASER_USB_HYDRA_HE_ADDRESS_ILLEGAL );
18191832
18201833 kvaser_usb_hydra_set_cmd_transid
18211834 (cmd , kvaser_usb_hydra_get_next_transid (dev ));
18221835
1823- err = kvaser_usb_send_cmd (dev , cmd , kvaser_usb_hydra_cmd_size ( cmd ) );
1836+ err = kvaser_usb_send_cmd (dev , cmd , cmd_len );
18241837 if (err )
18251838 goto end ;
18261839
@@ -1938,6 +1951,7 @@ static int kvaser_usb_hydra_set_opt_mode(const struct kvaser_usb_net_priv *priv)
19381951{
19391952 struct kvaser_usb * dev = priv -> dev ;
19401953 struct kvaser_cmd * cmd ;
1954+ size_t cmd_len ;
19411955 int err ;
19421956
19431957 if ((priv -> can .ctrlmode &
@@ -1953,6 +1967,7 @@ static int kvaser_usb_hydra_set_opt_mode(const struct kvaser_usb_net_priv *priv)
19531967 return - ENOMEM ;
19541968
19551969 cmd -> header .cmd_no = CMD_SET_DRIVERMODE_REQ ;
1970+ cmd_len = kvaser_usb_hydra_cmd_size (cmd );
19561971 kvaser_usb_hydra_set_cmd_dest_he
19571972 (cmd , dev -> card_data .hydra .channel_to_he [priv -> channel ]);
19581973 kvaser_usb_hydra_set_cmd_transid
@@ -1962,7 +1977,7 @@ static int kvaser_usb_hydra_set_opt_mode(const struct kvaser_usb_net_priv *priv)
19621977 else
19631978 cmd -> set_ctrlmode .mode = KVASER_USB_HYDRA_CTRLMODE_NORMAL ;
19641979
1965- err = kvaser_usb_send_cmd (dev , cmd , kvaser_usb_hydra_cmd_size ( cmd ) );
1980+ err = kvaser_usb_send_cmd (dev , cmd , cmd_len );
19661981 kfree (cmd );
19671982
19681983 return err ;
0 commit comments