diff --git a/src/kernel/dri/fs/ext2/ext2.c b/src/kernel/dri/fs/ext2/ext2.c
index 99d5e9d..b526e8f 100644
--- a/src/kernel/dri/fs/ext2/ext2.c
+++ b/src/kernel/dri/fs/ext2/ext2.c
@@ -417,7 +417,7 @@
 	const uint block_size = ext2_block_size(sb);
 	char transfer[block_size];
 
-	uint fsize = MIN(inode->size, size);
+	uint fsize = MIN(inode->size, (uint)size);
 	uint i;
 
 	// Transfer full blocks straight to the output buffer
@@ -478,8 +478,8 @@
 	return true;
 }
 
-static const uint ext2_bitmap_block(struct ext2_superblock *sb,
-									uint *bitmap_block, uint *index)
+static uint ext2_bitmap_block(struct ext2_superblock *sb,
+							  uint *bitmap_block, uint *index)
 {
 	const uint block_size = ext2_block_size(sb);
 
@@ -539,7 +539,7 @@
 		ext2_read_block(sb, buffer, block);
 
 		// If this is the first block start at start_at, otherwise 0
-		for (int i = 0; i < block_size / 4; i++)
+		for (uint i = 0; i < block_size / 4; i++)
 		{
 			// The bitwise negative will be non-zero if there are zero bits in
 			// the original.
@@ -577,7 +577,7 @@
 
 	kprintf(INFO "%d block groups\n", num_block_groups);
 
-	for (int bg_num = 0; bg_num < num_block_groups; bg_num++)
+	for (uint bg_num = 0; bg_num < num_block_groups; bg_num++)
 	{
 		struct ext2_block_group_descriptor bgd =
 			ext2_load_bgd(sb, 0);
@@ -607,7 +607,7 @@
 {
 	uint num_block_groups = ext2_num_block_groups(sb);
 
-	for (int bg_num = 0; bg_num < num_block_groups; bg_num++)
+	for (uint bg_num = 0; bg_num < num_block_groups; bg_num++)
 	{
 		struct ext2_block_group_descriptor bgd =
 			ext2_load_bgd(sb, 0);
diff --git a/src/kernel/dri/pci/pci.c b/src/kernel/dri/pci/pci.c
index bb0b36c..df958b1 100644
--- a/src/kernel/dri/pci/pci.c
+++ b/src/kernel/dri/pci/pci.c
@@ -119,7 +119,7 @@
 
 				// Do any drivers support this?
 
-				for (int i = 0; i < num_drivers; i++)
+				for (uint i = 0; i < num_drivers; i++)
 				{
 					if (drivers[i].supports(&dev))
 					{
@@ -136,9 +136,9 @@
 void pci_print_drivers()
 {
 	kprintf(INFO "Enumerating PCI device drivers:\n");
-	for (int i = 0; i < num_drivers; i++)
+	for (uint i = 0; i < num_drivers; i++)
 	{
-		for (int j = 0; j < drivers[i].loaded; j++)
+		for (uint j = 0; j < drivers[i].loaded; j++)
 		{
 			struct pci_device_driver d = drivers[i];
 			kprintf(INFO "Driver: %s, vendor: %s\n", d.generic_name, d.dev.vendor->name);
