datapath: Prevent bridge module from loading along with openvswitch.
authorBen Pfaff <blp@nicira.com>
Fri, 29 May 2009 22:32:59 +0000 (15:32 -0700)
committerBen Pfaff <blp@nicira.com>
Fri, 29 May 2009 22:33:06 +0000 (15:33 -0700)
commit9526bcfd633922bad77e3efdbc4de2ab8d6f4cd3
tree8aaf1c11e164bdb1eef492aa1628d1a758f0dfe7
parent5ce35027e7e95253e71a6733cf408a53fbf23085
datapath: Prevent bridge module from loading along with openvswitch.

For some time, the openvswitch kernel module has checked whether the
bridge module is loaded and refused to start if so.  However, the bridge
module doesn't check whether the openvswitch module is loaded, so it can
end up loaded at the same time if something goes wrong, and then generally
the system OOPSes sooner or later.

This commit adds proper mutual exclusion, by registering an LLC SAP for
the protocol used by spanning tree.  This is the first thing that the
bridge module does at initialization time also, and since there can only
be one registration for a given protocol this prevents both modules from
being loaded at the same time.

This fixes an actual OOPS observed at boot time on a XenServer running the
debug kernel that we built based on Citrix's 5.5.0-beta1 kernel.
datapath/datapath.c