udhcpd: reduce stack usage by ~700 bytes. +28 bytes code size
authorDenys Vlasenko <dvlasenk@redhat.com>
Thu, 21 Oct 2010 10:33:10 +0000 (12:33 +0200)
committerDenys Vlasenko <dvlasenk@redhat.com>
Thu, 21 Oct 2010 10:33:10 +0000 (12:33 +0200)
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
networking/udhcp/dhcpc.c
networking/udhcp/dhcpd.c

index cef0ab957f0ae30551b5563994b22af9f89ae72b..78aabedf21e93e3220c91786cac0e5e2e061e3db 100644 (file)
@@ -432,6 +432,7 @@ static int raw_bcast_from_client_config_ifindex(struct dhcp_packet *packet)
 }
 
 /* Broadcast a DHCP discover packet to the network, with an optionally requested IP */
+/* NOINLINE: limit stack usage in caller */
 static NOINLINE int send_discover(uint32_t xid, uint32_t requested)
 {
        struct dhcp_packet packet;
@@ -460,6 +461,7 @@ static NOINLINE int send_discover(uint32_t xid, uint32_t requested)
 /* RFC 2131 3.1 paragraph 3:
  * "The client _broadcasts_ a DHCPREQUEST message..."
  */
+/* NOINLINE: limit stack usage in caller */
 static NOINLINE int send_select(uint32_t xid, uint32_t server, uint32_t requested)
 {
        struct dhcp_packet packet;
@@ -500,7 +502,8 @@ static NOINLINE int send_select(uint32_t xid, uint32_t server, uint32_t requeste
 }
 
 /* Unicast or broadcast a DHCP renew message */
-static int send_renew(uint32_t xid, uint32_t server, uint32_t ciaddr)
+/* NOINLINE: limit stack usage in caller */
+static NOINLINE int send_renew(uint32_t xid, uint32_t server, uint32_t ciaddr)
 {
        struct dhcp_packet packet;
 
@@ -543,6 +546,7 @@ static int send_renew(uint32_t xid, uint32_t server, uint32_t ciaddr)
 
 #if ENABLE_FEATURE_UDHCPC_ARPING
 /* Broadcast a DHCP decline message */
+/* NOINLINE: limit stack usage in caller */
 static NOINLINE int send_decline(uint32_t xid, uint32_t server, uint32_t requested)
 {
        struct dhcp_packet packet;
@@ -588,6 +592,7 @@ static int send_release(uint32_t server, uint32_t ciaddr)
 }
 
 /* Returns -1 on errors that are fatal for the socket, -2 for those that aren't */
+/* NOINLINE: limit stack usage in caller */
 static NOINLINE int udhcp_recv_raw_packet(struct dhcp_packet *dhcp_pkt, int fd)
 {
        int bytes;
index 043220de9bdc24e3840cfc7ea76873355874fea9..f0878652c34300fef6bbfb70f6f3e53455335377 100644 (file)
@@ -132,7 +132,8 @@ static uint32_t select_lease_time(struct dhcp_packet *packet)
 }
 
 /* We got a DHCP DISCOVER. Send an OFFER. */
-static void send_offer(struct dhcp_packet *oldpacket, uint32_t static_lease_nip, struct dyn_lease *lease)
+/* NOINLINE: limit stack usage in caller */
+static NOINLINE void send_offer(struct dhcp_packet *oldpacket, uint32_t static_lease_nip, struct dyn_lease *lease)
 {
        struct dhcp_packet packet;
        uint32_t lease_time_sec;
@@ -202,7 +203,8 @@ static void send_offer(struct dhcp_packet *oldpacket, uint32_t static_lease_nip,
        send_packet(&packet, /*force_bcast:*/ 0);
 }
 
-static void send_NAK(struct dhcp_packet *oldpacket)
+/* NOINLINE: limit stack usage in caller */
+static NOINLINE void send_NAK(struct dhcp_packet *oldpacket)
 {
        struct dhcp_packet packet;
 
@@ -212,7 +214,8 @@ static void send_NAK(struct dhcp_packet *oldpacket)
        send_packet(&packet, /*force_bcast:*/ 1);
 }
 
-static void send_ACK(struct dhcp_packet *oldpacket, uint32_t yiaddr)
+/* NOINLINE: limit stack usage in caller */
+static NOINLINE void send_ACK(struct dhcp_packet *oldpacket, uint32_t yiaddr)
 {
        struct dhcp_packet packet;
        uint32_t lease_time_sec;
@@ -243,7 +246,8 @@ static void send_ACK(struct dhcp_packet *oldpacket, uint32_t yiaddr)
        }
 }
 
-static void send_inform(struct dhcp_packet *oldpacket)
+/* NOINLINE: limit stack usage in caller */
+static NOINLINE void send_inform(struct dhcp_packet *oldpacket)
 {
        struct dhcp_packet packet;