summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/drivers/ata.c3
-rw-r--r--firmware/drivers/fat.c5
2 files changed, 7 insertions, 1 deletions
diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c
index 7e1d2421d3..58349f69a6 100644
--- a/firmware/drivers/ata.c
+++ b/firmware/drivers/ata.c
@@ -292,6 +292,9 @@ int ata_write_sectors(unsigned long start,
292 292
293 last_disk_activity = current_tick; 293 last_disk_activity = current_tick;
294 294
295 if (start == 0)
296 panicf("Writing on sector 0\n");
297
295 mutex_lock(&ata_mtx); 298 mutex_lock(&ata_mtx);
296 299
297 if ( sleeping ) { 300 if ( sleeping ) {
diff --git a/firmware/drivers/fat.c b/firmware/drivers/fat.c
index 38223edc6a..37b0648c2e 100644
--- a/firmware/drivers/fat.c
+++ b/firmware/drivers/fat.c
@@ -1128,8 +1128,11 @@ static bool transfer( int start, int count, char* buf, bool write )
1128 int err; 1128 int err;
1129 1129
1130 LDEBUGF("transfer(s=%x, c=%x, %s)\n",start, count, write?"write":"read"); 1130 LDEBUGF("transfer(s=%x, c=%x, %s)\n",start, count, write?"write":"read");
1131 if (write) 1131 if (write) {
1132 if (start < fat_bpb.firstdatasector)
1133 panicf("Writing before data\n");
1132 err = ata_write_sectors(start, count, buf); 1134 err = ata_write_sectors(start, count, buf);
1135 }
1133 else 1136 else
1134 err = ata_read_sectors(start, count, buf); 1137 err = ata_read_sectors(start, count, buf);
1135 if (err) { 1138 if (err) {