fix up yet more annoying signed/unsigned and mixed type errors
diff --git a/miscutils/devfsd.c b/miscutils/devfsd.c
index d8a630c..fce63e5 100644
--- a/miscutils/devfsd.c
+++ b/miscutils/devfsd.c
@@ -476,7 +476,8 @@
 	if (fcntl (fd, F_SETFD, FD_CLOEXEC) != 0)
 		devfsd_perror_msg_and_die("FD_CLOEXEC");
 
-	do_ioctl_and_die(fd, DEVFSDIOC_GET_PROTO_REV,(int )&proto_rev);
+	if (ioctl (fd, DEVFSDIOC_GET_PROTO_REV, &proto_rev) == -1)
+		msg_logger_and_die(LOG_ERR, "ioctl");
 
 	/*setup initial entries */
     for (curr = initial_symlinks; curr->dest != NULL; ++curr)
diff --git a/miscutils/hdparm.c b/miscutils/hdparm.c
index 4bf0d45..750cb49 100644
--- a/miscutils/hdparm.c
+++ b/miscutils/hdparm.c
@@ -1945,7 +1945,7 @@
 	{
 		no_scsi();
 		printf(" attempting to unregister hwif#%u\n", hwif);
-		bb_ioctl(fd, HDIO_UNREGISTER_HWIF,(int *)hwif,"HDIO_UNREGISTER_HWIF");
+		bb_ioctl(fd, HDIO_UNREGISTER_HWIF,(int *)(unsigned long)hwif,"HDIO_UNREGISTER_HWIF");
 	}
 #endif
 #ifdef CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF
@@ -1977,7 +1977,7 @@
 			else
 				printf("set UDMA mode to %d\n", (piomode-200));
 		}
-		bb_ioctl(fd, HDIO_SET_PIO_MODE, (int *)piomode, "HDIO_SET_PIO_MODE");
+		bb_ioctl(fd, HDIO_SET_PIO_MODE, (int *)(unsigned long)piomode, "HDIO_SET_PIO_MODE");
 	}
 	if (set_io32bit)
 	{
@@ -2435,7 +2435,7 @@
 			printf(" setting bus state to %d", busstate);
 			bus_state_value(busstate);
 		}
-		bb_ioctl(fd, HDIO_SET_BUSSTATE, (int *)busstate, "HDIO_SET_BUSSTATE");
+		bb_ioctl(fd, HDIO_SET_BUSSTATE, (int *)(unsigned long)busstate, "HDIO_SET_BUSSTATE");
 	}
 #endif
 #ifdef CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF