[pxebs] Correct endianness of PXE type
The PXE type field is canonically little-endian, but the pxebs command treats it as big-endian in converting the type number passed on the command line to a field value to search against. Fix, to prevent the necessity of incantations like "pxebs net0 1536" to select menu item #6. Signed-off-by: Michael Brown <mcb30@etherboot.org> Modified-by: Michael Brown <mcb30@etherboot.org>
This commit is contained in:
parent
858b5fd253
commit
67015d1011
|
@ -693,7 +693,7 @@ static int dhcp_pxebs_tx ( struct dhcp_session *dhcp,
|
||||||
|
|
||||||
DBGC ( dhcp, "DHCP %p PXEBS REQUEST to %s:%d for type %d\n",
|
DBGC ( dhcp, "DHCP %p PXEBS REQUEST to %s:%d for type %d\n",
|
||||||
dhcp, inet_ntoa ( peer->sin_addr ), ntohs ( peer->sin_port ),
|
dhcp, inet_ntoa ( peer->sin_addr ), ntohs ( peer->sin_port ),
|
||||||
ntohs ( dhcp->pxe_type ) );
|
le16_to_cpu ( dhcp->pxe_type ) );
|
||||||
|
|
||||||
/* Set boot menu item */
|
/* Set boot menu item */
|
||||||
menu_item.type = dhcp->pxe_type;
|
menu_item.type = dhcp->pxe_type;
|
||||||
|
@ -1363,7 +1363,7 @@ int start_pxebs ( struct job_interface *job, struct net_device *netdev,
|
||||||
fetch_ipv4_setting ( netdev_settings ( netdev ), &ip_setting,
|
fetch_ipv4_setting ( netdev_settings ( netdev ), &ip_setting,
|
||||||
&dhcp->local.sin_addr );
|
&dhcp->local.sin_addr );
|
||||||
dhcp->local.sin_port = htons ( BOOTPC_PORT );
|
dhcp->local.sin_port = htons ( BOOTPC_PORT );
|
||||||
dhcp->pxe_type = htons ( pxe_type );
|
dhcp->pxe_type = cpu_to_le16 ( pxe_type );
|
||||||
dhcp->timer.expired = dhcp_timer_expired;
|
dhcp->timer.expired = dhcp_timer_expired;
|
||||||
|
|
||||||
/* Construct PXE boot server IP address lists */
|
/* Construct PXE boot server IP address lists */
|
||||||
|
|
Reference in New Issue