Channel congestion is one of the major challenges for IEEE 802.11p-based vehicular ad hoc networks. Unless controlled, congestion increases with vehicle density, leading to high packet loss and degraded safety application performance. In this paper, we study two classes of congestion control - reactive and adaptive. The reactive approach is represented by the Decentralized Congestion Control (DCC) framework defined in ETSI. The adaptive approach is represented by the LIMERIC linear control algorithm. Both approaches control safety message transmission as a function of channel load (i.e. Channel Busy Ratio, CBR). A reactive approach uses CBR directly, defining an appropriate transmission behavior for each CBR value, e.g. via a table lookup. By contrast, an adaptive approach identifies the transmission behavior that drives CBR to a target channel load, thus achieving the best message throughput possible for any given vehicle density. The paper considers two variations of DCC, one in which it serves as a traffic shaping 'gatekeeper' above the MAC sublayer, and another in which it additionally limits safety message generation at the facilities layer. The paper has two main results. First, it is shown that LIMERIC generally outperforms both DCC variations in a winding road scenario with various vehicle densities. Inter-packet reception gap and position tracking error are the primary metrics. This advantage is due to primarily LIMERIC's ability to achieve a target load consistent with maximum throughput and vehicle awareness. Second, it is shown that both DCC variations are subject to steady state oscillations, and the case in which DCC also limits message generation is subject to truly unstable variations. The paper uses NS-2 simulation results to support these conclusions.