net/code/dev.c, dev_ifsioc, case SIOCSIFFLAGS is the main place.
Be warned that several drivers turn promiscous mode on automatically to
handle multicasting, look for setting IFF_PROMISC. On a quick scan,
drivers/net/3c523.c:626: dev->flags|=IFF_PROMISC;
drivers/net/apricot.c:992: dev->flags|=IFF_PROMISC;
drivers/net/at1700.c:617: dev->flags|=IFF_PROMISC;
drivers/net/atp.c:767: dev->flags|=IFF_PROMISC;
drivers/net/de620.c:501: dev->flags|=IFF_PROMISC;
drivers/net/eepro.c:868: dev->flags|=IFF_PROMISC;
drivers/net/eth16i.c:1175: dev->flags|=IFF_PROMISC; /* Must do this */
drivers/net/fmv18x.c:602: dev->flags|=IFF_PROMISC;
drivers/net/ni52.c:571: dev->flags|=IFF_PROMISC;
drivers/net/ni52.c:577: dev->flags|=IFF_PROMISC;
drivers/net/seeq8005.c:618: dev->flags|=IFF_PROMISC;
drivers/net/wavelan.c:1482: dev->flags |= IFF_PROMISC;