diff --git a/board/safety/safety_mazda.h b/board/safety/safety_mazda.h index 5d64ec7011..2e43901f55 100644 --- a/board/safety/safety_mazda.h +++ b/board/safety/safety_mazda.h @@ -134,11 +134,13 @@ static int mazda_tx_hook(CANPacket_t *to_send) { static int mazda_fwd_hook(int bus, int addr) { int bus_fwd = -1; - + bool block = (addr == MAZDA_LKAS2); if (bus == MAZDA_MAIN) { - bus_fwd = MAZDA_CAM; + if (!block) { + bus_fwd = MAZDA_CAM; + } } else if (bus == MAZDA_CAM) { - bool block = (addr == MAZDA_LKAS) || (addr == MAZDA_LKAS_HUD); + block |= (addr == MAZDA_LKAS) || (addr == MAZDA_LKAS_HUD); if (!block) { bus_fwd = MAZDA_MAIN; } diff --git a/tests/safety/test_mazda.py b/tests/safety/test_mazda.py index 1c9d6d5376..32fd44a9cb 100755 --- a/tests/safety/test_mazda.py +++ b/tests/safety/test_mazda.py @@ -12,7 +12,7 @@ class TestMazdaSafety(common.PandaSafetyTest, common.DriverTorqueSteeringSafetyT STANDSTILL_THRESHOLD = .1 RELAY_MALFUNCTION_ADDR = 0x243 RELAY_MALFUNCTION_BUS = 0 - FWD_BLACKLISTED_ADDRS = {2: [0x243, 0x440]} + FWD_BLACKLISTED_ADDRS = {0: [0x249,], 2: [0x243, 0x440, 0x249]} FWD_BUS_LOOKUP = {0: 2, 2: 0} MAX_RATE_UP = 10